Tengo problemas para que UISplitViewController funcione en una aplicación universal donde ya he codificado la parte de iPhone. Como método de solución de problemas, decidí comenzar con un nuevo proyecto y simplemente intentar hacer la única acción que está causando un problema y todavía lo es.No se puede usar UISplitViewController en una aplicación universal?
Si creo una aplicación universal y en el controlador del iPad crea una vista dividida (ya sea en un XIB o en el código), entonces aparece como negro (a menos que establezca un color de fondo). Si lo hago en una aplicación exclusiva para iPad, se muestra muy bien.
Agradecería que alguien pudiera probar esto por su cuenta y ver si obtienen lo mismo, o decirme dónde me estoy equivocando.
- En Xcode, cree una aplicación universal "basada en la ventana".
- Vaya al controlador del iPad y pegue el código en la parte inferior.
Lo que obtengo es una pantalla negra, no una vista dividida. El mismo código funciona en un proyecto solo para iPad. ¿Qué estoy haciendo mal o qué está mal configurado?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UISplitViewController *split = [[UISplitViewController alloc] initWithNibName:nil bundle:nil];
UIViewController *vc1 = [[UIViewController alloc] initWithNibName:nil bundle:nil];
vc1.view.backgroundColor = [UIColor redColor];
UIViewController *vc2 = [[UIViewController alloc] initWithNibName:nil bundle:nil];
vc2.view.backgroundColor = [UIColor blueColor];
split.viewControllers = [NSArray arrayWithObjects:vc1, vc2, nil];
[window addSubview:split.view];
[window makeKeyAndVisible];
[vc1 release];
[vc2 release];
[split release];
return YES;
}
Tienes razón con la gestión de la memoria y el Ivar adicional. La opción shouldRotateToInterfaceOrientation: anulación también suena genial, pero no funciona para mí. ¿Has probado? – tonklon
Si la subclase de UISplitViewController no funciona para usted, intente subclasificar cada UIViewController y anular shouldRotateToInterfaceOrientation: en cada uno. Esta es probablemente la mejor manera de hacerlo de todos modos ... – ian
Fue el autorroteo de los subcontroladores de vista dividida y el problema de lanzamiento combinado. – codepoet