2013-01-19 13 views
5

Ho seguito una soluzione su this question per visualizzare una vista con uno sfondo trasparente. Il problema che sto avendo è una volta che il controller della modal view è stato visualizzato, la vista sottostante non viene più ruotata.iOS: applica la rotazione vista per visualizzare il controller in vista modale

Ad esempio se A è il mio controller di visualizzazione, quindi B è la mia vista modale. Il problema è il seguente. Al momento ho il mio dispositivo in verticale e ho A visualizzato. Presento quindi B modalmente. Quindi ruoto il mio dispositivo e B ruota con esso, tuttavia A rimane come prima.

Si può chiedere a qualcuno come gestire questa rotazione in modo che anche la vista sottostante (A) venga ruotata?

+0

quale versione di iOS? – foundry

+0

Sto usando iOS 6.0 –

+0

possibile duplicato di [iOS Ruota vista controller quando Modal View Controller ruota] (http://stackoverflow.com/questions/13987528/ios-rotate-view-controller-when-modal-view-controller -rotati) – michael23

risposta

6

ModalViewController viene utilizzato per interrompere il flusso di lavoro corrente e visualizzare una nuova serie di viste. Quindi, quando si presenta modally, qui in questo caso si presenta B, l'attuale Viewcontroller attivo è B e non A.

Un ViewController è oggetti controller tradizionali nel modello di progettazione Model-View-Controller (MVC). Si occupano anche dell'interfaccia utente, dei riconoscimenti gestuali, della gestione degli eventi (per esempio dei pulsanti) e dell'allineamento delle visualizzazioni in essi presenti.

Quando hai presentato B, il controllore di visualizzazione corrente è passato da A a B e quindi quando provi a ruotare (se è fornito il supporto di orientamento) la vista di B viene eseguita come il controllore di vista attivo e risponde alla rotazione. Normalmente passiamo inosservati perché la vista è opaca. Qui nel tuo caso la vista è trasparente e notiamo che A non ha risposto alla rotazione.

ho provato l'esempio precedente in iOS6 (da quello che lei ha citato)

ViewController2 *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"VC2"]; 
vc.view.backgroundColor = [UIColor clearColor]; 
self.modalPresentationStyle = UIModalPresentationCurrentContext; 
[self presentViewController:vc animated:YES completion:nil]; 

qui Un rimasto in modalità verticale

Quando ho fatto questo aggiungendo vista del secondo viewcontroller come una visualizzazione secondaria, una diversa al paesaggio

ViewController2 *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"VC2"]; 
vc.view.backgroundColor = [UIColor clearColor]; 
self.view addSubview:vc.view]; 

questo happend perché nella seconda prova del viewcontroller attiva era a e non B come punto di vista di B era una visualizzazione secondaria aggiunto A. Passare attraverso Mele di Documento sulla

+0

Avendo lo stesso problema la mia vista in modal view controller non ruotava in ios7..che cosa fare? Usando UIModalPresentationOverCurrentContext in ios8 ruota la vista sotto modal – iWatch

Problemi correlati