2011-01-25 13 views
12

Apple proporciona la vista dividida solo para el paisaje pero no para el modo vertical. ¿Hay alguna manera de lograr la vista dividida en modo retrato también?¡Vista dividida en modo vertical!

[splitViewController setHidesMasterViewInPortrait:NO]; 

Esto funcionará. Pero esta API no está documentada (privada).

Gracias,
Manjunath

Respuesta

23

Para iOS5 +,

Vaya a su detailViewController. Su detailViewController debe tener UISplitViewControllerDelegate. Y simplemente coloque este código en:

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation{ 
    return NO; 
} 

Esto hará el truco. Y es API pública.

+1

Esto está en desuso en iOS 8. – Joey

2

Tome un vistazo a este MGSplitViewController.

Es un controlador de vista dividida personalizado con varias mejoras útiles. Ciertamente, puede mostrar la vista maestra en vertical.

0

Alguna vez traté de lograr algo similar. Después de probar el código de Matt e intentar crear una categoría sin éxito, me di cuenta de que la única forma de hacerlo (de forma que Apple no rechaza su aplicación) es usar dos vistas personalizadas. Referir this pregunta.

16

Mi pequeña contribución aquí. respuesta

Byte es correcta hasta iOS 7. A partir de iOS 8 se debe utilizar preferredDisplayMode

Por ejemplo, para mostrar las dos controladores de vista en el modo vertical, haga lo siguiente:

self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; 

Espero que esto ayude !

+1

Subclasé el UISplitViewController y lo adjunté a la vista dividida en el guión gráfico y en la carga de la vista puse self.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; – fellowworldcitizen

2

actualización de iOS 8 Xcode 6+

if let splitVCExists = self.splitViewController{ 
     splitVCExists.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible 
    }  

doc: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISplitViewController_class/index.html#//apple_ref/occ/instp/UISplitViewController/preferredDisplayMode

Una cosa que me di cuenta es que se va a tratar a la disposición del splitviewcontroller basado en la preferredDisplayMode, siempre y cuando haya suficiente espacio. de lo contrario, elegirá el modo de visualización para que se ajuste al contenido correcto. Lo he usado y establece los VCs como quiero tanto en retrato como en paisaje.

Cuestiones relacionadas