2013-10-16 36 views
1

我正在使用Xamarin.iOS。我创建了UIView以及几个UITextField s。我正在寻找从代码中初始化这些文本字段中的文本值的最佳方法。 我可以在UIViewContoller的构造函数中传递文本数据,但我无法访问其中的textField(它们为空)。我可以在viewDidLoad方法中更改textFields的文本值。Xamarin.ios初始化UIView

我不想在控制器类中创建额外的字段来存储构造函数传递的数据,并在viewDidLoad中使用它们。你知道更好的解决方案吗?

回答

8

我不想在控制器类中创建额外的字段来存储 由构造函数传递的数据并在viewDidLoad中使用它们。

但是这就是它的目的。

或者,你可以,如果你使用MVVM模式创建您的视图 - 控制少域/属性:

public class UserViewModel { 
    public string Name { get; set;} 
    public string Title { get; set;} 
} 

public class UserViewController : UIViewController 
{ 
    UserViewModel viewModel; 
    public UserViewController (UserViewModel viewModel) : base (...) 
    { 
     this.viewModel = viewModel; 
    } 

    public override void ViewDidLoad() 
    { 
     userName.Text = viewModel.Name; 
     userTitle.Text = viewModel.Title; 
    } 
} 

这就是一种模式,让你有很多的代码重用翻过平台(安卓,WP, ...)并明确分开关注。这是一个额外的代码(非常),但它值得每个字节。