我需要整个应用程序被锁定在肖像视图,除了一个视图控制器。我需要这些函数的功能,但同时使用这两个函数会出错。当我添加视图控制器功能时,应用程序崩溃。如果我拿走应用程序委托,视图控制器也会做我需要的事情。
程序委托

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {

        return UIInterfaceOrientationMask(rawValue: UIInterfaceOrientationMask.portrait.rawValue)
    }

视图控制器
 override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
        return .landscapeRight
    }

    override var shouldAutorotate: Bool {
        return true
    }

最佳答案

编辑为使用基本控制器视图:
我记得是否为应用程序启用了定向。每个需要限制它的控制器都需要实现定向功能。
或者,创建支持Portrait的基本UIViewController。它应该由所有控制器继承,并且只覆盖横向控制器中的方向功能。
大致如下:

class BaseViewController : UIViewController {
    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
        return .Portrait...
    }
}

class ViewController1: BaseViewController {
    // nothin to override
}

class LandscapeController: BaseViewController {
    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
        return .landscapeRight
    }
}

关于ios - 将View Controller 设为横向时锁定App Delegate中的Portrait View,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49242471/

10-12 06:22