在展現 app 啓動廣告等狀況下,咱們可能須要在界面上疊加一個 UIWindow,可是實測狀況下發現,因爲 UIWindow 會被系統引用致使延遲釋放,在 customWindow 實例被使用完以後,單純bash
customWindow.rootViewController = [[UIViewController alloc] init];
customWindow = nil;複製代碼
是不能讓 customWindow 徹底對當前界面沒有影響的,其中有可能出現的一個問題是:app 使用各個 VC 獨立管理狀態欄的方式時,咱們經過 [[UIViewController alloc] init]
建立的 VC 是有狀態欄的,這是當 app 須要展現的其餘 UIWindow 裏面的 VC 沒有狀態欄時,customWindow 會浮在最頂層,強行疊加一個狀態欄出來(iOS 9 親測)。app
這時改 keyWindow 或者設置 windowLevel 都是沒有用的,各類嘗試以後,解決方案是在把 window 設爲 nil 以前,加一句 setHidden:ui
customWindow.rootViewController = [[UIViewController alloc] init];
[customWindow setHidden:YES];
customWindow = nil;複製代碼
FYI.spa