2013-01-19 17 views
5

śledzę rozwiązania na this question w celu wyświetlenia widoku z przezroczystym tłem. Problem, który mam, jest po wyświetleniu kontrolera widoku modalnego, widok podstawowy nie jest już obracany.iOS: Nałożyć obrotu widoku w celu wyświetlenia widoku kontrolera pod modalnej

Na przykład, jeśli A jest moim kontrolerem widoku, to moim widokiem modalnym jest B. Kwestia jest następująca. Obecnie mam urządzenie w pozycji pionowej i wyświetlam A. Przedstawiam następnie modalnie: B. Następnie obracam urządzenie i B obraca się wraz z nim, jednak A pozostaje bez zmian.

Proszę może ktoś doradzić jak obsługiwać ten obrót tak, że ogólny widok (A) zostaje obrócony zbyt?

+0

która wersja iOS? – foundry

+0

używam iOS 6.0 –

+0

możliwy duplikat [iOS Rotate View Controller gdy Modal View Controller obraca] (http://stackoverflow.com/questions/13987528/ios-rotate-view-controller-when-modal-view-controller -rotates) – michael23

Odpowiedz

6

ModalViewController służy do przerwania bieżący przepływ pracy i wyświetlanie nowy zestaw poglądów. Więc kiedy prezentujesz modalnie, tutaj w tym przypadku prezentujesz B, bieżący aktywny Viewcontroller to B, a nie A.

A ViewController jest tradycyjnym obiektem kontrolującym we wzorcu projektowym Model-View-Controller (MVC). Dbają również o interfejs użytkownika, rozpoznawanie gestów, zarządzanie zdarzeniami (na przykład przyciski) i wyrównanie widoków w nich obecnych.

Po przedstawieniu B, bieżący kontroler widoku zmienił się z A na B, a zatem przy próbie obrotu (jeśli zapewnione jest wsparcie orientacji), widok B jest wykonywany jako aktywny kontroler widoku i reaguje na obrót. Zwykle nie zauważamy ich, ponieważ widok jest nieprzejrzysty. Tutaj w twoim przypadku widok jest przezroczysty i zauważamy, że A nie zareagował na rotację.

Próbowałem powyższy przykład w iOS6 (z jednym pan wspomniał)

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

tu pozostał w trybie pionowym

Kiedy zrobiłem to dodanie widok drugiego viewcontroller jako podrzędny, A zmieniło do krajobrazu

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

to się stało, bo w drugim badaniu była aktywna viewcontroller a i B, a nie view B był podrzędny dodany do A. Przejście Apples-tych Dokument na

+0

Mając ten sam problem mój widok pod kontrolką widoku modalnego nie obraca się w ios7 .. co zrobić? Użycie UIModalPresentationOverCurrentContext w ios8 powoduje obrót widoku w trybie modalnym – iWatch