Estoy intentando deducir de la documentación de sketchy de Apple qué método es el mejor lugar para inicializar y agregar mis controles de Vistas a la vista del controlador.¿Añado programáticamente SubViews en ViewDidAppear, ViewDidLoad, ViewWillAppear, el constructor?
Con winforms Es bastante sencillo, ya que siempre están inicializadas dentro InitializeDesigner
, llamado en el constructor. Estoy intentando igualar la confiabilidad de este patrón si es posible.
Estoy trabajando con UIViewControllers
y UITableViewControllers
dentro de un UINavigationController
la mayor parte del tiempo - si esto lo afecta a todos.
He aquí un ejemplo:
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);
}
puedo obtener resultados mixtos con algunas UIControls cuando los agrego a la vista en diferentes lugares. Retraso visual a veces, otras veces la vista web está oculta en alguna parte.
¿Hay una regla general a seguir para agregarlos?
Vea también: http://stackoverflow.com/questions/573958/iphone-sdk-what-is-the-difference-between-loadview-and-viewdidload –