在 Universal Xcode 6 项目中仅停止 iPhone 屏幕旋转
Posted
技术标签:
【中文标题】在 Universal Xcode 6 项目中仅停止 iPhone 屏幕旋转【英文标题】:Stop only iPhone screen rotating in Universal Xcode 6 project 【发布时间】:2014-10-20 03:21:47 【问题描述】:随着 Xcode 6 的推出,Apple 取消了在 Universal 应用程序中轻松为 iPad 和 iPhone 提供多个故事板的功能。因此,您无法在旋转面板/设置上区分 iPad 和 iPhone。
我怎样才能阻止 iPhone 应用旋转成横向,同时仍然允许 iPad 应用这样做。
这是你只能在代码中做的事情吗?如果是,我仍在使用 Objective C,而不是 Swift。
【问题讨论】:
【参考方案1】:删除所有其他答案的代码。转到您的 info.plist 文件并添加以下内容。
“支持的接口方向” - 数组 “纵向(底部主页按钮)” - 字符串 “纵向(顶部主页按钮)” - 字符串 “支持的界面方向 (iPad)”- 数组 “纵向(底部主页按钮)” - 字符串 “纵向(顶部主页按钮)” - 字符串 “横向(左主页按钮)” - 字符串 “横向(右主页按钮)” - 字符串【讨论】:
原始键 - UISupportedInterfaceOrientations~ipad【参考方案2】:查看THIS的答案。
基本上你必须在 UINavigationController 或 UITabBarController 子类上实现 Chris1994 的答案>,然后将以下内容添加到您在该导航或选项卡控制器上拥有的第一个 UIVIewController 子类:
- (NSUInteger)supportedInterfaceOrientations
return UIInterfaceOrientationMaskPortrait;
【讨论】:
【参考方案3】: - (NSUInteger) supportedInterfaceOrientations
NSString *device = [UIDevice currentDevice].model;
if([device isEqualToString:@"iPhone"])
return UIInterfaceOrientationMaskPortrait;
else
return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscape;
- (BOOL)shouldAutorotate
if([device isEqualToString:@"iPhone"])
return NO;
else
return YES;
【讨论】:
由于接收器未知 - '设备',构建失败。我已将它放在 ViewController.m 文件中。这是正确的吗? @WillWoodruff 是的,但是很抱歉复制 NSString *device = [UIDevice currentDevice].model;进入布尔应该旋转 虽然提供的代码不再产生任何错误,但它仍然无法停止旋转,有什么想法吗?以上是关于在 Universal Xcode 6 项目中仅停止 iPhone 屏幕旋转的主要内容,如果未能解决你的问题,请参考以下文章
将 Angular 2/3/4/5/6 项目转换为 Angular Universal
如何在 Xcode 5 中手动将仅限 iPhone 的应用程序转换为 Universal?
Xcode 在 UiCollectionView 中仅重新加载一个单元格
使用 Autolayout Xcode6 在 Universal Storyboard 中相对于 UIImage 定位 UILabel