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
która wersja iOS? – foundry
używam iOS 6.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