2015-08-05 15 views
6

Ho un controller di navigazione in possesso di un controller della vista che supporta solo l'orientamento verticale:Barra di stato nascondiglio quando controller della vista del paesaggio di sola è presentato oltre View Controller ritratto di sola

enter image description here

Questo presenta una full- View controller schermo che supporta solo paesaggio:

enter image description here

Purtroppo durante la transizione, la barra di stato sul controller della vista presentazione viene rimosso, il che fa sobbalzare il contenuto prima che inizi la transizione. Ho implementato una transizione di dissolvenza personalizzato per rendere l'effetto evidente:

enter image description here

Si noti che la barra di stato non è presente. Questo è fatto prima della la transizione personalizzata inizia, senza animazione, quindi anche se faccio uno snapshot prima che la transizione abbia inizio e la aggiungo alla vista contenitore, viene comunque visualizzata momentaneamente la barra di navigazione ridotta.

C'è un modo non terribile per risolvere questo problema? Non voglio dover aggiungere lo snapshot al di fuori della transizione (come this answer).

Ho provato a rendere lo stile di presentazione personalizzato anziché a schermo intero, ma questo non lascia il dispositivo con orientamento verticale. Una soluzione che utilizza uno stile di presentazione personalizzato che lascia il dispositivo nell'orientamento orizzontale sarebbe anche accettabile.

C'è un progetto di esempio che dimostra il problema here

+1

Hey! Hai trovato una soluzione valida per questo? Grazie. –

+0

Lo stesso problema qui. Qualche buona soluzione finora? –

risposta

0

potrebbe essere troppo orribile un hack, ma se è lo strappi vista che dà fastidio piuttosto che la barra di stato scomparsa si potrebbe modificare i vincoli in modo che l'isn top' t vincolato alla guida di layout superiore ma al top superview con una costante appropriata?

+0

Non lascerebbe ancora la barra di navigazione cambiare dimensione? – jrturton

+0

Probabilmente ma ho pensato che potrebbe non essere così inquietante. Non sono così felice con la risposta, potrebbe rimuoverlo. –

+0

Mi hai ispirato, quindi grazie. Penso che potrei avere una soluzione, ma è un po 'orribile – jrturton

0

Potrei mancarmi qualcosa ma nasconde la barra poco prima che la transizione abbia un aspetto migliore?

self.navigationController? NavigationBarHidden = true in prepareForSegue e riaccenderlo in viewWillAppear

+0

Voglio che il controller della vista che presenta rimanga lo stesso. – jrturton