Quiero configurar un UIViewController dentro de un NavigationController mediante programación, sin embargo, se llama al método loadView o viewDidLoad.loadView de UIViewController no se llama
Este es mi código en el delegado de la aplicación:
MyViewController *viewController = [[MyViewController alloc] init];
UIView *view = [[UIView alloc] initWithFrame:window.frame];
viewController.view = view;
UINavgationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[window addSubview:[navController view];
[window makeKeyAndVisible];
Cuando inicio la aplicación veo un navigationbar, pero no hay llamadas a loadView. ¿Qué me estoy perdiendo? pensé loadView se llama después de llamar view
Editar
MyViewController *viewController = [[MyViewController alloc] init];
[viewController view]; // doesn't look right?
UINavgationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[window addSubview:[navController view];
[window makeKeyAndVisible];
editado hacia el comentario de Jonás, pero loadView todavía no se consiga llamar.
En cuanto a su segunda observación, la asignación de la vista, se refiere a mi segunda y tercera línea de código, ¿verdad? Eso tiene sentido. ¿Pero cómo llamaría al getter en este caso? –
'[viewController view]' invoca el getter de la vista, pero no debería ser necesario que lo haga directamente. El 'UINavigationController' al que agregó su controlador de vista llamará a ese getter en algún momento para agregar la vista de su controlador a la jerarquía de vista. ¿Puedes compartir tu implementación del controlador de vista? Parece que tienes algo más en juego. – Jonah
Básicamente es la plantilla UIViewController vacía de Xcode, pero no se llama a ningún método (vista) además de init. Ahí traté de configurar una vista como esta: - (id) init { \t self ((self = [super init])) { \t UIView * view = [[UIView alloc] initWithFrame: [[UIScreen mainScreen] bounds] ]; \t self.view = view; \t [ver versión]; \t} return self; } –