Ten paciencia conmigo, todavía estoy aprendiendo Cocoa Touch. Otro -viewDidLoad al no ser llamado pregunta no estaba relacionado con mi problema, sí busqué.-viewDidLoad no llamado en UIViewController subclasificado
Tengo FooViewController
, una subclase UIViewController
. FooViewController.xib tiene su propietario de archivo configurado en FooViewController. Además, tengo Main
, cuyo delegado de la aplicación es MyApplication
y cuyo propietario del archivo es UIApplication
. Mi plumilla principal está configurada en Principal.
soy capaz de hacer la vista aparecen en la pantalla, el uso de este flujo (código cortado con tijeras por razones de brevedad):
UIWindow *main;
-(void)applicationDidFinishLaunching:(UIApplication*)application {
[self showFooViewController];
[main makeKeyAndVisible];
}
-(void)showFooViewController {
fooViewController = [[FooViewController alloc] init];
if(![[NSBundle mainBundle] loadNibNamed:@"FooViewController" owner:fooViewController options:nil]) {
DebugF(@"Failed to load FooViewController");
return;
}
// Add the view and put it in place
UIView *view = [fooViewController view];
CGRect cur = [view frame];
cur.origin = CGPointMake(0.0f, 20.0f);
[view setFrame:cur];
[main addSubview:[fooViewController view]];
}
Sin embargo, este mensaje no se envía a FooViewController
:
- (void) viewDidLoad {
DebugF(@"Hello!");
}
Silencio total en la salida de gdb.
He visto otros tutoriales de Cocoa que muestran instancias y demás en la vista de documento de IB, pero no veo estas opciones en el mío. ¿Se supone que estoy creando instancias de fooViewController en el Nib? ¿Perdí una conexión? En FooViewController.xib, la vista del propietario del archivo está conectada a la vista en el Nib.
Estoy seguro de que esta es una solución simple, y he vagado por el camino equivocado. ¡Halp!
De acuerdo con la documentación "Nunca debe llamar a este método [loadView] directamente". –
Gracias, Peter - Veo a lo que te refieres. Aquí está el enlace, en caso de que alguien quiera leer la fuente original (de Apple): http://developer.apple.com/iphone/library/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#// apple_ref/occ/instm/UIViewController/loadView – Tyler
Tuve exactamente el mismo problema (llamar directamente a 'loadView'), gracias por la información. –