iOS開發中的錯誤整理,iOS9以後的UIWindow(TopWindow)以及UIWindow與statusBar的關係

iOS9以後的UIWindow的問題(TopWindow),以及UIWindow與statusBar之間的聯繫

1.出現的問題

  • iOS9以後UIWindow必需要指定一個根控制器,否則會報錯!iOS9以前只是警告
  • 當建立了window,指定了根控制器以後.在別的控制器設置statusBar的樣式和顏色沒有效果.由於statusBar的樣式和顏色是由位於最頂端的UIWindow的控制器決定的!

2.問題解決

  • 將topWindow實現爲單例模式(這裏簡單實現,完整的單例模式請參考以前的整理),爲了之後不管在哪裏均可以拿到topWindow

  • 對外界提供兩個屬性,一個決定statusBar的樣式,另外一個決定statusBase的顯示與隱藏

  • 重寫這兩個屬性的setter,只要外界賦值,就執行[self setNeedsStatusBarAppearanceUpdate];,不要直接調用prefersStatusBarHidden方法等,沒用

  • 重寫設置statusBase的兩個方法,返回外界給的值

相關文章
相關標籤/搜索