Storyboard忽略UIInterfaceOrientation设置

时间:2015-04-14 11:11:45

标签: ios objective-c xcode uiinterfaceorientation

我对UIInterfaceOrientation有一个奇怪的问题。在我的项目中有许多不同的视图,其中一些应该以横向模式旋转,其中一些不应该。问题是所有未使用Storyboard创建的视图和仅启用UIInterfaceOrientation纵向的视图都可以正常工作,视图不会旋转,而是使用故事板创建的所有视图,即使{{{ 1}}横向模式被禁用,他们继续旋转。在我的Xcode项目设置中,这些检查已启用,我无法更改它们:

enter image description here

如何在所有不同视图中完全禁用设备旋转? [故事板与否]。

这是我用来在所有storyboard视图控制器中禁用设备方向的代码,但它不起作用:

UIInterfaceOrientation

3 个答案:

答案 0 :(得分:1)

试试这段代码可能会对你有用。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientationMask)interfaceOrientation {
    return (interfaceOrientation == UIInterfaceOrientationMaskPortrait);
}

答案 1 :(得分:1)

解决方案是将一个UINavigationController类分配给Storyboard文件中的UINavigationController,并将此代码放在他的.m文件中:

- (BOOL)shouldAutorotate {
    return NO;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return UIInterfaceOrientationPortrait;
}

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    return UIInterfaceOrientationIsPortrait(toInterfaceOrientation);
}

答案 2 :(得分:0)

请检查您的项目.plist中是否有多个项目用于定位或奇怪的内容。我有时发现方向在plist或重复键中具有不同的值。 希望它有所帮助