Ich versuche, aus Apples sketchy Dokumentation herauszufinden, welche Methode der beste Ort ist, um meine Ansichten-Steuerelemente zu initialisieren und der Ansicht des Controllers hinzuzufügen.programmiere ich SubViews in ViewDidAppear, ViewDidLoad, ViewWillAppear, dem Konstruktor?
Mit winforms ist es ziemlich einfach, da sie immer innerhalb InitializeDesigner
initialisiert werden, im Konstruktor aufgerufen. Ich versuche, die Zuverlässigkeit dieses Musters wenn möglich zu vergleichen.
Ich arbeite mit UIViewControllers
und UITableViewControllers
innerhalb einer UINavigationController
die meiste Zeit - wenn dies alles bewirkt.
Hier ist ein Beispiel:
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);
}
ich gemischte Ergebnisse mit einigen UIControls bekommen, wenn ich sie zu der Ansicht in verschiedenen Orten hinzufügen. Visual Lag manchmal, manchmal ist das Webview irgendwo versteckt.
Gibt es eine allgemeine Regel zum Hinzufügen?
Siehe auch: http://stackoverflow.com/questions/573958/iphone-sdk-what-is-the-difference-between-loadview-and-viewdidload –