2014-09-15 3 views
0

Эй, я пытаюсь установить разрешенные ориентации, но это не сработает.Устанавливает допустимые ориентации программным способом

AppDelegate.m:

- (NSUInteger)supportedInterfaceOrientations 
    { 
     if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0){ 
     return UIInterfaceOrientationMaskAll; 
     }else{ 
     return UIInterfaceOrientationMaskPortrait; 
     } 

    } 

В моей Info.plist я активировано все ориентации.

ответ

0

Если вы хотите, чтобы ваше приложение вращалось, вам нужно установить вращения во всех контроллерах представления вашего приложения.

Это может быть необходимо создать пользовательский класс для вашего UINavigationController или UITabBarController, чтобы сделать все, что вращается, как вы могли бы подумать с таким кодом:

@implementation CustomTabBarController 

-(BOOL)shouldAutorotate 
{ 
    if(self.viewControllers && self.selectedIndex<self.viewControllers.count) 
     return ((UIViewController*)self.viewControllers[self.selectedIndex]).shouldAutorotate; 
    return NO; 
} 

-(NSUInteger)supportedInterfaceOrientations 
{ 
    if(self.viewControllers && self.selectedIndex<self.viewControllers.count) 
     return ((UIViewController*)self.viewControllers[self.selectedIndex]).supportedInterfaceOrientations; 
    return UIInterfaceOrientationMaskPortrait; 
} 

@end 

и

@implementation CustomNavigationController 

- (BOOL)shouldAutorotate 
{ 
    return self.topViewController.shouldAutorotate; 
} 
- (NSUInteger)supportedInterfaceOrientations 
{ 
    return self.topViewController.supportedInterfaceOrientations; 
} 

@end 

С помощью этих двух пользовательские классы, вы можете справиться с тем, должно ли ваше приложение вращаться или не напрямую непосредственно с самого ViewController, так что это удобно.

+0

Я dpnt хочу повернуть. Я хочу установить разрешенные орты. Можно ли сказать в делегате приложения. Я поддерживаю iOS8 и для более старых версий для всего приложения? –

+0

Вам нужно установить разрешенные ориентации для всех контроллеров представления вашего приложения (или использовать наследование, чтобы определить это только один раз), но чтобы заставить его работать, вы должны определить его в TabBar и navigationBar, если есть. – cdescours