本文對應(yīng)系統(tǒng)版本為 iOS 13 - beta
在iOS 13之前惩琉,我們模態(tài)展示的視圖默認是全屏的,而在iOS13中痰驱,默認的樣式變成了類iPhone上safari的分頁樣式:
在使用 模態(tài)視圖(presentViewController:) 來跳轉(zhuǎn)視圖時系統(tǒng)提供了兩個參數(shù)來簡化跳轉(zhuǎn)的設(shè)置般此,modalTransitionStyle 和 modalPresentationStyle跷车。前者為轉(zhuǎn)場過渡的類型,后者為展示的樣式拧粪,系統(tǒng)為兩者都提供了多種可選樣式修陡。
展示的方式變了就看 modalPresentationStyle 的值,在iOS13前可霎,該值默認為0魄鸦,即 .fullScreen。
而此時癣朗,在 iOS13 中變?yōu)榱?2拾因。
在 iOS13 中 modalPresentationStyle 的類型新增了以下類型:
UIModalPresentationAutomatic = -2
我們在官方文檔中能看到該參數(shù)的如下描述:
Use this value when you want to use the system's recommended presentation style. For most view controllers, UIKit maps this style to the UIModalPresentationPageSheet style, but some system view controllers may map to a different style.
如果你想使用系統(tǒng)推薦的演示樣式就使用此值,對于絕大部分視圖控制器旷余,UIKit將此值映射到UIModalPresentationPageSheet绢记,但也有一些系統(tǒng)視圖控制器會映射到不同樣式
此處筆者做了一些測試,除了 “UISearchController” 和 “UIAlertController” 因為自身業(yè)務(wù)的特殊性不同外正卧,其余的視圖控制器均為 UIModalPresentationPageSheet 的展示樣式蠢熄。
就當前beta版本的改動,適配起來也很簡單炉旷,手動指定一下原本的樣式即可护赊,具體方案根據(jù)項目具體情況而定惠遏。
具體到iOS13最終正式版時是否會發(fā)生變化也說不準,到時候再修正本文骏啰。
沒準到時候 .automatic 的樣式默認映射到 .fullScreen 也是有可能的节吮。
那我只有自己灌的水自己親手倒掉了??