rotacje iOS 6: supportedInterfaceOrientations nie działa?
Mam ten problem z zestawem SDK dla systemu iOS 6: mam kilka widoków, które powinny być dozwolone do obracania (np. Videoview), a niektóre nie. Teraz rozumiem, że muszę sprawdzić wszystkie orientacje w Info.plist aplikacji, a następnie uporządkować w każdym ViewControllerze, co powinno się stać. Ale to nie działa! Aplikacja zawsze obraca się do orientacji podanych w Info.plist.
Info.plist:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
dowolny kontroler ViewController, który nie powinien mieć możliwości obracania:
//deprecated
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
Obserwacja: aplikacja obraca się do orientacji poziomej i pionowej. Jakieś pomysły dlaczego lub co robię źle?
Pozdrawiam, Marc
Edytuj: Moje najnowsze odkrycia wskazują również, że jeśli chcesz mieć rotację w pewnym momencie swojej aplikacji, możeszmieć aktywować wszystkie cztery kierunki obrotu w ustawieniach projektu lub Info.plist. Alternatywą do tego jest zastąpienie
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
w aplikacji AppDelegate, która zastępuje Info.plist. Nie można już ustawiać tylko Portretu w Info.plist, a następnie obracać w niektórych ViewController, zastępując shouldAutorotateToInterfaceOrientation lub supportedInterfaceOrientations.