Я хочу, чтобы несколько контроллеров просмотра моего приложения не вращались в iOS 6.0. Вот что я сделал, чтобы сделать вращение в iOS 6 возможным:
1.) Установите Windows rootviewController в application:didFinishLaunchingWithOptions:
self.window.rootViewController = self.tabBarController;
2.) Установите «Поддерживаемые ориентации интерфейса» в моей цели (в XCode), чтобы я мог использовать все ориентации
3.) Реализована новая функция ротации iOS 6.0.
- (BOOL) shouldAutorotate {
return YES;
}
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskAll;
}
4.) По некоторым причинам я создал подкласс UINavigationController, реализовал также эти новые функции и использовал этот новый NavigationController вместо исходного.
Пока все хорошо, все работает нормально, и все контроллеры просмотра теперь могут поворачиваться в любую ориентацию. Теперь я хочу, чтобы несколько viewController не вращались и оставались только в портретном режиме. Но когда я устанавливаю новые методы поворота в этих конкретных контроллерах вида, как этот, он все равно поворачивается для каждой ориентации:
- (BOOL) shouldAutorotate {
return NO;
}
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
Кроме того, установка функции вращения навигационного контроллера, как указано выше, ничего не меняет. (Все контроллеры просмотра могут поворачиваться в любую ориентацию)
Что я делаю неправильно?
РЕДАКТИРОВАТЬ:
Также установка предпочтительной ориентации интерфейса ничего не меняет:
- (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationMaskPortrait;
}