iOS7以前,設(shè)置statusBar的方式一般都是通過application的setStatusBarHidden方法來實(shí)現(xiàn),這個(gè)方法是針對整個(gè)應(yīng)用的,一旦狀態(tài)更改了,影響到所有的viewController,而iOS9以后這個(gè)方法就被棄用了。
代替的方法是覆蓋viewcontroller的prefersStatusBarHidden方法。
步驟如下:
1. 更改應(yīng)用plist中的UIViewControllerBasedStatusBarAppearance 設(shè)置為Yes
2. 覆蓋viewController的prefersStatusBarHidden方法,如果需要隱藏statusBar,就返回Yes,否則返回no。對比setStatusBarHidden來說,實(shí)現(xiàn)了viewController互相之間的設(shè)置不受影響。
3. 如果需要?jiǎng)討B(tài)刷新statusBar的狀態(tài),需要手動(dòng)調(diào)用viewController的setNeedsStatusBarAppearanceUpdate方法。