2011-01-25 17 views
12

Apple fornisce la vista divisa solo per il paesaggio ma non per la modalità verticale. C'è un modo per ottenere anche la splitview in modalità verticale?Split view in portrait!

[splitViewController setHidesMasterViewInPortrait:NO]; 

Questo funzionerà. Ma questa API non è documentata (privata).

Grazie,
Manjunath

risposta

23

Per iOS5 +,

Vai al tuo detailViewController. Il tuo detailViewController dovrebbe avere UISplitViewControllerDelegate. E semplicemente basta rilasciare questo codice:

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

Questo farà il trucco. Ed è API pubblica.

+1

Questo è obsoleto in iOS 8. – Joey

2

Date un'occhiata a questo MGSplitViewController.

È un controller di visualizzazione split personalizzato con vari miglioramenti utili. Certamente puoi mostrare la vista principale in verticale.

0

Qualche tempo fa ho cercato di ottenere una cosa simile. Dopo aver provato il codice di Matt e tentando senza successo di creare una categoria, mi sono reso conto che l'unico modo per farlo (in un modo in cui Apple non rifiuta la tua app) consiste nell'utilizzare due visualizzazioni personalizzate. Consultare la domanda this.

16

Il mio piccolo contributo qui. risposta

di Byte è corretto fino ad iOS 7. A partire dal iOS 8 si dovrebbe usare preferredDisplayMode

Ad esempio, per mostrare entrambi i controller di vista in modalità verticale effettuare le seguenti operazioni:

self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; 

Spero che questo aiuti !

+1

Ho suddiviso l'UISplitViewController e l'ho collegato allo splitview nello storyboard e nel viewdidload messo self.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; – fellowworldcitizen

2

aggiornamento a 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 che ho notato è che si cercherà di layout del splitviewcontroller sulla base del preferredDisplayMode finché c'è abbastanza spazio. altrimenti sceglierà la modalità di visualizzazione per adattarla correttamente al contenuto. L'ho usato e depone i VC come voglio sia in verticale che in orizzontale.