Swift更新IOS13遇到的问题

开发语言:Swift 5
开发环境:Xcode 11

最近把项目升级到IOS13,在更新后遇到了以下问题。

1. 界面跳转后无法全屏显示

这是由于UIViewController的默认属性改变导致的问题,UIViewController中有以下两个属性:

@available(iOS 3.0, *)
//转场动画效果
open var modalTransitionStyle: UIModalTransitionStyle

@available(iOS 3.2, *)
//转场结束后界面样式
open var modalPresentationStyle: UIModalPresentationStyle

通常我们使用以下函数进行界面跳转:

@available(iOS 5.0, *)
 open func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil)

而modalPresentationStyle在IOS13中,默认值是automatic,所以导致转场后的界面无法全屏显示,我们只需要修改modalPresentationStyle为fullScreen即可恢复成以前的样子了。

  • 在UINavigationController中同样也有modalPresentationStyle属性,必要时请一同修改。

2. 强制横屏启动

在之前的版本设置app强制横屏驱动需要在AppDelegate中实现以下函数:

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

在IOS13中,发现此函数无法被调用,原因是需要设置项目属性full screen,设置后此函数会正常调用,程序也会正常横屏启动


你可能感兴趣的:(Swift更新IOS13遇到的问题)