El controller de vista dividida debe ser un controller de vista raíz

Cada vez que trato de presentar un UISplitViewController de manera modal, la aplicación se bloquea. Por lo tanto, siempre debe ser el controller de vista raíz. ¿Alguien puede confirmar eso?

Desde la Guía de progtwigción del iPad de Apple :

La vista del controller de vista dividida siempre debe instalarse como la vista raíz de la window de su aplicación. Nunca debe presentar una vista dividida dentro de una interfaz de navigation o barra de tabs.

Entonces, sí, no puede presentar una vista dividida fuera de la window de su aplicación principal (que incluye modalmente).

EDITAR

El enlace a los documentos anteriores ya no trata sobre este tema. Se puede encontrar una discusión relevante en el catálogo de controlleres de vista de Apple para iOS , que establece lo siguiente:

Un controller de vista dividida debe ser siempre la raíz de cualquier interfaz que crees. En otras palabras, siempre debe instalar la vista desde un object UISplitViewController como la vista raíz de la window de su aplicación. […] Los controles de vista dividida no se pueden presentar de forma modal.

Tuve el mismo problema con el mismo error cuando traté de ajustar desde un controller de vista de contenido normal (es decir, no hay problema al seguir un controller de tabs o un controller de navigation).

Afortunadamente, encontré una manera de sortear esto al insert un controller de navigation entre el VC y el controller de vista dividida. En otra palabra, segue del VC a un controller de navigation, luego dibuje una connection de relación entre el controller de navigation y el controller de vista dividida. De esta forma, crear instancias de una vista dividida aún no requiere encoding.

Por supuesto, puede usar UISplitViewController sin utilizarlo como controller de vista raíz. En mi proyecto, lo uso así:

  1. Mostrar mi propio viewcontroller en el método modal:
 [self presentModalViewController: mainViewController animated: YES];
  1. En el mainViewController, tengo
 UISplitViewController * splitViewController;

y en - (void)viewDidLoad , establezca splitViewController.view en mainViewController.view

 splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil]; self.view = splitViewController.view; 

El UISplitController PUEDE SER instalado bajo UITabBarController. Lo hago. Simplemente use la búsqueda en este foro: encontré al less una buena muestra de software.

Sí. Exactamente deberá usar RootViewController y debe henetworkingarse de UITableViewController. Puedes echar un vistazo a este tutorial