¿Puedo eliminar el file xib por completo?

He estado convirtiendo un progtwig simple que utiliza un file xib para hacerse de forma programática. He eliminado los elementos uno por uno y los vuelvo a poner en el código.

¿Puedo eliminar eventualmente el file completo? o se usa para algo vital?

Parece que hay tres.

PhoneContent.xib MyView.xib MainWindow.xib

No necesita MyView.xib o PhoneContent.xib para que pueda eliminarlos si ha recreado los layouts en el código.

Para eliminar MainWindow.xib, necesitará actualizar el método de aplicación: didFinishLaunchingWithOptions para configurar la window y el controller de vista principal mediante progtwigción, pero de manera más sutil que necesitará modificar la function principal en main.m

En lugar de verse así:

int main(int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); [pool release]; return retVal; } 

Lo necesitarás para que se vea así:

 int main(int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([YourAppDelegate class])); [pool release]; return retVal; } 

También tendrá que eliminar la reference a MainWindow (nombre de base de file de nib principal) de su file info.plist.

Bueno. Entonces, ahora te he dicho cómo eliminar tus files nib, ¿te importa si te pregunto por qué lo estás haciendo? ¡Generar layouts en código es una locura! Es como tratar de generar HTML en JavaScript o generar una image especificando los colors como numbers hexadecimales en un file de text.

Está tomando una interfaz que es fácil de modificar visualmente sin necesidad de comstackr y ejecutar cada vez que mueve algo con unos pocos píxeles, y lo hace mucho más difícil de mantener.

Está tomando un código de layout que está garantizado como libre de errores porque se genera automáticamente y lo reemplaza con un montón de códigos escritos a mano que podrían estar llenos de pérdidas de memory o errores conceptuales.

¿Qué tienes contra los files nib?

También debe eliminar el valor principal de XIb de App_info.plist.

Sí, puede eliminar todos los files .xib. Si elimina MainWindow.xib, recuerde UIApplicationDelegate window en su UIApplicationDelegate 's didFinishLaunchingWithOptions:

 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.backgroundColor = [UIColor whiteColor]; 

y luego configure el controller de vista raíz

 self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; 

también, como mencionó Nick Lockwood, verifique main.m para ver si la class UIApplicationDelegate está configurada (hecha de manera pnetworkingeterminada por Xcode4.2 y superior)

 int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 

Finalmente, elimine Main nib file base name propiedad del Main nib file base name <App>-Info.plist .