Cree UIView completo dentro de UIViewController

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.

preguntado el 22 de mayo de 12 a las 20:05

2 Respuestas

Intentaría algo como

[viewController1 presentModalViewController:viewController2 animated:YES];

Esto podría hacer el truco...

respondido 17 mar '15, 17:03

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

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 or haz tu propia pregunta.