開發(fā)語言:Swift 5
開發(fā)環(huán)境:Xcode 11
最近把項目升級到IOS13橡伞,在更新后遇到了以下問題。
1. 界面跳轉(zhuǎn)后無法全屏顯示
這是由于UIViewController的默認(rèn)屬性改變導(dǎo)致的問題见间,UIViewController中有以下兩個屬性:
@available(iOS 3.0, *)
//轉(zhuǎn)場動畫效果
open var modalTransitionStyle: UIModalTransitionStyle
@available(iOS 3.2, *)
//轉(zhuǎn)場結(jié)束后界面樣式
open var modalPresentationStyle: UIModalPresentationStyle
通常我們使用以下函數(shù)進行界面跳轉(zhuǎn):
@available(iOS 5.0, *)
open func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil)
而modalPresentationStyle在IOS13中猫牡,默認(rèn)值是automatic,所以導(dǎo)致轉(zhuǎn)場后的界面無法全屏顯示燕锥,我們只需要修改modalPresentationStyle為fullScreen即可恢復(fù)成以前的樣子了。
- 在UINavigationController中同樣也有modalPresentationStyle屬性悯蝉,必要時請一同修改归形。
2. 強制橫屏啟動
在之前的版本設(shè)置app強制橫屏驅(qū)動需要在AppDelegate中實現(xiàn)以下函數(shù):
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return .landscapeRight
}
在IOS13中,發(fā)現(xiàn)此函數(shù)無法被調(diào)用鼻由,原因是需要設(shè)置項目屬性full screen暇榴,設(shè)置后此函數(shù)會正常調(diào)用厚棵,程序也會正常橫屏啟動