2016-05-25 7 views
0

Я реализации этих методов ротации, но они не работают:Objective-C: Методы вращения не работает

-(BOOL)shouldAutorotate { 
    return NO; 
} 

- (UIInterfaceOrientationMask)supportedInterfaceOrientations{ 
    return UIInterfaceOrientationMaskLandscape; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{ 
    return UIInterfaceOrientationLandscapeRight; 
} 

Я хочу, чтобы заставить только один вид на ландшафт и заблокировать вращение, но приложение не поймает эти методы, и я не знаю, почему. Любое решение?

+0

ли это мнение, которое вы не хотите, чтобы повернуть встраиваются в 'UINavigationController'? –

+0

Да, это важно? @BhavinRamani – David

+1

Да, пожалуйста, посмотрите на эту ссылку, которая мне помогла: http://stackoverflow.com/questions/21216594/disable-rotation-for-view-controller-in-navigation-controller –

ответ

1

В youar AppDelegate добавить этот метод,

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 
{ 

    if ([self.window.rootViewController.presentedViewController isKindOfClass: [SecondViewController class]]) 
{ 
    return UIInterfaceOrientationMaskAll; // or UIInterfaceOrientationMaskLandscape for landscape and more you can set 
} 
    else return UIInterfaceOrientationMaskPortrait; 
} 

В приведенном выше коде контроллера второго вида ваш желаемый вид, чтобы показать в ландшафте.

Надеется, что это поможет :)