2012-04-05 11 views
21

Tengo un proyecto XCode iPad usando un controlador de navegación. He intentado conseguir un botón para empujar un UISplitViewController a la pila de navegación, pero tengo este error:iOS: UISplitViewController no puede ser empujado a UINavigationController

Split View Controllers cannot be pushed to a Navigation Controller

Resulta que UISplitViewController no juega bien con UINavigationController. Sin embargo, aún necesito mostrar el controlador de vista dividida cuando se hace clic en este botón. ¿Cómo hago esto? Y, también importante, ¿cómo hago un botón de retroceso para que el usuario pueda regresar al controlador de navegación?

Respuesta

28

Para mostrar un controlador SplitView, necesitará usar setRootViewController. Esto se debe a que SplitViewController necesita ser el controlador de la vista raíz.

de la documentación de Apple:

A split view controller must always be the root of any interface you create. In other words, you must always install the view from a UISplitViewController object as the root view of your application's window. The panes of your split-view interface may then contain navigation controllers, tab bar controllers, or any other type of view controller you need to implement your interface.

Para volver Tendrá que utilizar setRootViewController para volver a la página anterior. Me encontré con este problema cuando convertí mi aplicación de iPhone a universal y terminé usando un controlador de navegación para iPhone y setRootViewController para la versión de iPad. Es un poco fastidioso porque no puedes animarlo bien without a bit of fudging.

+0

¿Cómo usaré setRootViewController? Google me dice que es un método de UIWindow, pero no puedo encontrar dónde encontrar una instancia de UIWindow. –

+2

Debe obtenerlo como propiedad del delegado de su aplicación, así: delegado de MyAppDelegate * appDelegate = (MyAppDelegate *) [[UIApplication sharedApplication]]; y luego [appDelegate.window setRootViewController: shareSelectViewController]; – glenstorey

+0

muchas gracias! –

Cuestiones relacionadas