Es razonablemente simple de hacer la generación de interfaz de usuario totalmente programática. En primer lugar, tiene que editar main.m a ser algo como lo siguiente:
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [NSAutoreleasePool new];
UIApplicationMain(argc, argv, nil, @"MyAppDelegate");
[pool release];
return 0;
}
donde MyAppDelegate es el nombre de la clase de aplicación delegado. Esto significa que se creará una instancia de MyAppDelegate en el inicio, algo que normalmente maneja el archivo Nib principal de la aplicación.
Dentro MyAppDelegate, poner en práctica su applicationDidFinishLaunching: método similar al siguiente:
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if (!window)
{
[self release];
return;
}
window.backgroundColor = [UIColor whiteColor];
rootController = [[MyRootViewController alloc] init];
[window addSubview:rootController.view];
[window makeKeyAndVisible];
[window layoutSubviews];
}
donde MyRootViewController es el controlador de vista para la vista principal en su ventana. Esto debería inicializar la ventana principal y agregar la vista administrada por MyRootViewController a ella. rootController se mantiene como una variable de instancia dentro del delegado, para referencia posterior.
Esto debería permitirle generar programáticamente su interfaz de usuario a través de MyRootViewController.
Sí, debería poder hacer lo que está intentando hacer inicializando y agregando su vista y subvistas dentro de loadView. ¿Te importa publicar tu código? –
¿Puedo trash el plumín y configurar el plist Main nib en nil? Cuando hago esto, se rompe, porque el AppDelegate prefabricado está configurado para cargar la ventana principal y ver las puntas del controlador. –