我正在使用Xamarin.iOS
。我创建了UIView
并添加了几个UITextField
个。我正在寻找从代码初始化这些文本字段中的文本值的最佳方法。
我可以在UIViewContoller
的构造函数中传递文本数据,但我无法访问其中的textFields(它们为null)。我可以在viewDidLoad方法中更改textFields的文本值。
我不想在控制器类中创建其他字段来存储构造函数传递的数据,并在viewDidLoad中使用它们。你知道更好的解决方案吗?
答案 0 :(得分:8)
我不想在控制器类中创建要存储的其他字段 构造函数传递的数据并在viewDidLoad中使用它们。
但这就是它的意图。
或者,如果使用MVVM模式,则可以在viewcontroller中创建更少的字段/属性:
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;
}
}
这种模式可以让您在平台(android,WP,...)中重复使用大量代码,并明确区分问题。这是一个(非常)的额外代码,但它值得每个字节。