Chcę, aby kilka moich kontrolerów aplikacji nie obracało się w systemie iOS 6.0. To, co zrobiłem, aby obrót w iOS 6 możliwych:iOS 6 ViewController obraca się, ale nie powinien
1.) Ustaw rootviewController okien w aplikacji: didFinishLaunchingWithOptions:
self.window.rootViewController = self.tabBarController;
2.) Ustaw "Obsługiwane orientacje Interface" w moim docelowa (w Xcode), więc można korzystać ze wszystkich kierunków
3.) wdrożył nowe funkcjonalności iOS 6.0 obrót
- (BOOL) shouldAutorotate {
return YES;
}
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskAll;
}
4.) Z pewnych powodów podklasowałem UINavigationController i zaimplementowałem te nowe funkcje i użyłem tego nowego NavigationController zamiast oryginalnego.
Jak na razie wszystko działa dobrze i wszystkie kontrolery widoku mogą się obracać do każdej orientacji. Teraz chcę, aby kilka viewController nie obracać i pozostają tylko w pionie. Ale kiedy ustawić nowe metody rotacje w tych konkretnych viewcontrollers tak, to nadal obraca się do każdej orientacji:
- (BOOL) shouldAutorotate {
return NO;
}
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
ustawienie także rotationsfunctionality w navigationController niczym powyżej niczego nie zmienia. (Wszystkie kontrolery widoku mogą się obracać do każdej orientacji)
Co robię źle?
EDIT:
także ustawienie preferowane Interfaceorientation niczego nie zmienia:
- (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationMaskPortrait;
}
Dzięki, to rozwiązało mój problem! – NicTesla
Należy zachować ostrożność przy tym rozwiązaniu - jeśli metoda supportedInterfaceOrientations kontrolera widoku wywoła metodę supportedInterfaceOrientations na kontrolerze nawigacyjnym, wówczas masz nieskończoną rekursję. Znalazłem trudny sposób, w jaki UIPrintingProgressViewController firmy Apple prosi o kontroler nawigacji dla obsługiwanychInterfaceOrientations ... – tyler
@tyler Jak sobie z tym poradzimy? Wydruk powoduje nieskończoną rekursję.I tak nie mogę tego naprawić. Użyłem powyższej kategorii do rotacji określonych kontrolerów widoku w mojej aplikacji. –