2010-05-03 2 views
12

Ho un controller di visualizzazione modale che viene visualizzato utilizzando UIModalPresentationFullScreen con TransitionStyle impostato come UIModalTransitionStylePartialCurl. Funziona magnificamente.UIModalTransitionStylePartialCurl non in rotazione

Il mio problema è che quando il dispositivo viene ruotato, la mia vista ruota (come previsto), ma l'effetto "arricciatura" non lo fa. Qualcuno sa se questo è di progettazione, o c'è qualcos'altro che deve essere fatto? Grazie.

risposta

3

Nella mia esperienza lo stile UIModalTransitionStylePartialCurl mette entrambi i controller di vista coinvolti in uno stato di semi limbo dove non giocano secondo le normali regole. Un altro esempio di ciò è che la presentazione modale parziale dell'arricciatura non sembra rispettare il passaggio modale della gerarchia della vista, il che significa che quando si dispone di viste modali impilate, se si visualizza una modale più in alto nello stack dovrebbe prendere il sopravvento, tuttavia il parziale arricciare blocca questo.

ad es. le viste mostrano modamente altre visualizzazioni: visualizza 1 -> visualizza 2 -> visualizza 3 Visualizza vista 1 per visualizzare la visualizzazione 4 4 ​​ visualizza 1 -> visualizza 4 Se la vista 3 viene visualizzata come arricciatura parziale, non si verificherà nulla quando si richiede il display della vista 4.

Inoltre non è possibile visualizzare modicamente altre viste sotto un arricciamento parziale (la documentazione ufficiale lo indica, che intrinsecamente significa che non si comporta come una normale visualizzazione modale) ad es. view 1 - Visualizza> Visualizza 2 (ricciolo parziale) tell 2 a modale display 3 non succede nulla

IMO Apple non ha pienamente al forno lo stile UIModalTransitionStylePartialCurl che è un peccato perché è fantastico. Per farla breve, si aspettano dei problemi quando la si utilizza in quanto non si comporta come previsto quando viene chiesto di fare qualcosa che va oltre il semplice capovolgimento.

0

Verificare se il ViewController che si sta presentando deve avereAutorotateToInterfaceOrientation: implementato e restituisce il valore desiderato.

+0

Sì, la vista ruota correttamente. è l'effetto di ricciolo che non ruota. – Mongo

+1

Ora ho capito. La vista padre arrotolata rimane nello stesso orientamento di prima e solo la vista modale ruota quando il dispositivo cambia orientamento. Credo che sarebbe necessario ruotare la vista genitore 'manualmente' in quanto non è attualmente attiva. – chaos0815

2

Quando mi sono imbattuto in questo problema ho deciso che era ok per la visualizzazione modalmente presentata da chiudere automaticamente in deviceDidRotateSelector evitando così il problema.

+0

Anche questa è una buona soluzione. Grazie per la condivisione. – Mongo