Cree UIView completo dentro de UIViewController
Frecuentes
Visto 197 veces
1
Tengo un UIViewController (controlador1) que muestra algunos botones de UI en un UIView. Cuando se hace clic en uno de los botones, me gustaría crear una instancia de un segundo UIViewController (controller2, que es de una clase de controlador completamente diferente) que luego creará algunas UIViews mediante programación y las agregará a una de las UIViews que administra el controlador1.
Entonces, en el controlador1 me gustaría el siguiente código:
- (void) someButtonPressed: (id)sender
{
ViewController2* controller2 = [ [ ViewController2 alloc ] initWithNibName:nil bundle:nil ];
}
Luego me gustaría crear programáticamente las UIViews adicionales dentro del controlador2. Idealmente, no tendré más líneas de código dentro del controlador1 (para agregar vistas y cosas por el estilo). Realmente me gustaría crear todas las vistas y agregarlas a las vistas existentes desde el código del controlador2.
¿Puedo hacer esto y cómo? Intenté simplemente colocar el siguiente código en el controlador2:
- (void)loadView
{
NSLog(@"HPSViewEditorViewController loadView");
}
pero no se llama.
Quiero encapsular toda la jerarquía de UIView para el controlador2 en el código del controlador2, y no quiero 'desordenar' el controlador1 con nada más que la creación de instancias del controlador2.
Gracias.
2 Respuestas
0
Intentaría algo como
[viewController1 presentModalViewController:viewController2 animated:YES];
Esto podría hacer el truco...
respondido 17 mar '15, 17:03
0
Desde Referencia de clase UIViewController:
El controlador de vista llama a este método cuando se solicita su propiedad de vista, pero actualmente es nula. Este método carga o crea una vista y la asigna a la propiedad de vista.
-loadView no se llamará hasta que se haga referencia a controller2.view.
contestado el 22 de mayo de 12 a las 20:05
Entonces, ¿hay alguna forma de hacer referencia a él desde el controlador 2? - Que significa todo esto
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas objective-c uiview uiviewcontroller or haz tu propia pregunta.
Genial, funciona de maravilla. No hay necesidad de loadView tampoco. Muchas gracias. - Que significa todo esto
Anselmo - problema leve; cuando se muestra la vista del segundo controlador, toda la pantalla se vuelve negra. Quiero que el contenido de las vistas anteriores se 'muestre a través' de la vista que pertenece al controlador2. ¿Alguna idea de si esto es posible? - Que significa todo esto
No estoy 100 % seguro, pero intentaría darle al fondo el color claro UIColor... :-) - Anselm Scholz