我的应用程序允许所有四个方向,但rootviewcontroller应该只允许纵向方向。
我覆盖了rootviewcontroller中的supportedInterfaceOrientations方法,但是如果设备在应用程序启动时以横向方向保持,则视图控制器在横向显示不正确,即使只允许纵向方向。这是iOS 8特定问题。
override func supportedInterfaceOrientations() -> Int {
return UIInterfaceOrientation.Portrait.rawValue
}
答案 0 :(得分:1)
在ViewController中:
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
Swift版本:
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}
答案 1 :(得分:0)
对于我实现AppDelegate函数应用程序supportedInterfaceOrientationsForWindow做了伎俩
func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow) -> Int {
if let viewController = self.window?.rootViewController?.presentedViewController as? PortraitViewController{
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}else{
return Int(UIInterfaceOrientationMask.All.rawValue)
}
}
其中PortraitViewController应替换为根视图控制器类的名称