Sto cercando di capire dalla documentazione Apple sketchy quale metodo è il posto migliore per inizializzare e aggiungere i miei controlli di visualizzazione alla vista del controllore.Aggiungo a livello di programmazione le sottoview in ViewDidAppear, ViewDidLoad, ViewWillAppear, il costruttore?
Con winforms è abbastanza semplice, poiché sono sempre inizializzati all'interno di InitializeDesigner
, chiamati nel costruttore. Sto cercando di abbinare l'affidabilità di questo modello, se possibile.
Sto lavorando con UIViewControllers
e UITableViewControllers
all'interno di un UINavigationController
la maggior parte del tempo - se questo influenza tutto.
Ecco un esempio:
public MyController()
{
// Here?
AddViews();
}
public override ViewDidLoad()
{
base.ViewDidLoad();
// Or is should it be here?
AddViews();
}
public override ViewWillAppear(bool)
{
base.ViewWillAppear(animated);
// Here?
AddViews();
}
public override ViewDidAppear(bool animated)
{
base.ViewDidLoad(animated);
// Or maybe here?
AddViews();
}
void AddViews()
{
UILabel label = new UILabel();
label.Text = "Test";
label.Frame = new RectangleF(100,100,100,26);
View.AddSubView(label);
UIWebView webview = new UIWebView();
webview .Frame = new RectangleF(100,100,100,26);
View.AddSubView(webview);
}
ottengo risultati contrastanti con alcuni UIControls quando li aggiungo alla vista in luoghi diversi. Visual lag a volte, altre volte la webview è nascosta da qualche parte.
C'è una regola generale da rispettare per aggiungerli?
Vedere anche: http://stackoverflow.com/questions/573958/iphone-sdk-what-is-the-difference-between-loadview-and-viewdidload –