开发语言: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,设置后此函数会正常调用,程序也会正常横屏启动
网友评论