2013-10-16 40 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, ...)並明確分開關注。這是一個額外的代碼(非常),但它值得每個字節。