Ios 启动纵向应用程序,即使设备处于横向

Ios 启动纵向应用程序,即使设备处于横向,ios,objective-c,Ios,Objective C,我的应用程序设计用于纵向和横向。 从iOS 8开始,如果设备保持横向,则启动应用程序时会出现问题。用户界面的初始化是不正确的 我的用户必须关闭应用程序,然后在纵向握住设备的同时重新启动 我如何安排应用程序始终以纵向模式启动,而不将其锁定在此模式?在此之后,应允许用户更改为所有四个方向 在我的视图中,controller shouldAutorotate返回true,supportedInterfaceOrientations返回all。在项目导航器中单击项目名称。然后转到“常规”和“部署选项”部

我的应用程序设计用于纵向和横向。 从iOS 8开始,如果设备保持横向,则启动应用程序时会出现问题。用户界面的初始化是不正确的

我的用户必须关闭应用程序,然后在纵向握住设备的同时重新启动

我如何安排应用程序始终以纵向模式启动,而不将其锁定在此模式?在此之后,应允许用户更改为所有四个方向


在我的视图中,controller shouldAutorotate返回true,supportedInterfaceOrientations返回all。

在项目导航器中单击项目名称。然后转到“常规”和“部署选项”部分,选择首选的设备方向


这是一个在ios 11上适用的解决方案,我的应用程序支持纵向和横向,但初始视图的选项卡栏必须始终为纵向。设置方向锁定并创建一个实用程序,该实用程序应在DidFinishLaunching内执行,选项如下:

AppUtility.lockOrientation(.纵向)


您是否将UIViewController设置为rootViewController?当您为这两个方向设计应用程序时,您必须同时进行横向定位,以便在横向中打开应用程序的用户也可以使用应用程序而不会出现任何问题。您是否有横向和纵向的所有启动屏幕?有时会出现这种情况。根viewcontroller是一个tabcontroller。这应该适用于此应用程序仅在纵向模式下运行,用户不能更改为横向模式。那不是我想要的。
    func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
    return self.orientationLock
}

struct AppUtility {
    static func lockOrientation(_ orientation: UIInterfaceOrientationMask) {
        if let orientationDelegate = UIApplication.shared.delegate as? AppDelegate {
            orientationDelegate.orientationLock = orientation
        }
    }