如何在ios9中禁用旋转?

时间:2015-10-20 12:27:57

标签: ios rotation ios9

我想禁用我的应用程序的轮换,这在iOS 9中有效。我已经尝试了

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return UIInterfaceOrientationMaskPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];

但没人工作。谁知道?

3 个答案:

答案 0 :(得分:2)

sscanf

在Plist文件中添加以上键,并根据您的要求添加方向。

我添加了一个例如。

答案 1 :(得分:1)

这应该可以从iOS 6开始运行,但我只在iOS 8上测试过它。子类UINavigationController并覆盖以下方法:

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return UIInterfaceOrientationLandscapeRight;
}

- (BOOL)shouldAutorotate {
    return NO;
}

或询问可见视图控制器

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return self.visibleViewController.preferredInterfaceOrientationForPresentation;
}

- (BOOL)shouldAutorotate {
    return self.visibleViewController.shouldAutorotate;
}

并在那里实施这些方法。

答案 2 :(得分:1)

的工作原理如下: 在ViewController.m

中写下这个

- (BOOL)shouldAutorotate {返回NO; }

在Xcode 7.2,iOS 9.2,iPhone 6s Plus中尝试过。