How to force view controller orientation in iOS 8?

前端 未结 25 2543
太阳男子
太阳男子 2020-11-22 13:11

Before iOS 8, we used below code in conjunction with supportedInterfaceOrientations and shouldAutoRotate delegate methods to force app orie

25条回答
  •  醉话见心
    2020-11-22 13:32

    According to Korey Hinton's answer

    Swift 2.2:

    extension UINavigationController {
        public override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
            return visibleViewController!.supportedInterfaceOrientations()
        }
        public override func shouldAutorotate() -> Bool {
            return visibleViewController!.shouldAutorotate()
        }
    }
    
    
    extension UITabBarController {
        public override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
            if let selected = selectedViewController {
                return selected.supportedInterfaceOrientations()
            }
            return super.supportedInterfaceOrientations()
        }
        public override func shouldAutorotate() -> Bool {
            if let selected = selectedViewController {
                return selected.shouldAutorotate()
            }
            return super.shouldAutorotate()
        }
    }
    

    Disable Rotation

    override func shouldAutorotate() -> Bool {
        return false
    }
    

    Lock to Specific Orientation

    override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
        return UIInterfaceOrientationMask.Portrait
    }
    

提交回复
热议问题