iOS 隱藏狀態(tài)欄

如何隱藏某個(gè)控制器的狀態(tài)欄?

1、在 info.plist 文件增加 View controller-based status bar appearance 屬性,設(shè)置值為 YES。

2、重寫控制器的方法:

- (BOOL)prefersStatusBarHidden {
    return self.shouldHiddeStatusBar;
}

3、需要改變狀態(tài)欄狀態(tài),就調(diào)用 setNeedsStatusBarAppearanceUpdate 方法:

[self setNeedsStatusBarAppearanceUpdate];

4、注意?。?!

如果修改了 toVC 的 modalPresentationStyle,一定要修改 toVC 的 modalPresentationCapturesStatusBarAppearance 屬性為 YES,上面的代碼才有效!

例如,present 某個(gè)控制器的時(shí)候,想讓當(dāng)前控制器不消失,就要修改 toVC 的 modalPresentationStyle 屬性為 UIModalPresentationOverFullScreen。當(dāng) toVC 發(fā)生某些事情就隱藏狀態(tài)欄,需要這樣寫:

// fromVC.m 

UIViewController *toVC = [UIViewController new];
// 當(dāng)前控制器不消失,toVC 透明的時(shí)候能看到
toVC.modalPresentationStyle = UIModalPresentationOverFullScreen;
// 是否接管狀態(tài)欄外觀,即重寫的 prefersStatusBarHidden 等方法是否會(huì)被調(diào)用
toVC.modalPresentationCapturesStatusBarAppearance = YES;
[self presentViewController:toVC animated:YES completion:nil];

被 presented 的控制器要這樣寫:

// toVC.m 

// 重寫
- (BOOL)prefersStatusBarHidden {
    return self.shouldHiddeStatusBar;
}

// 某個(gè)事件處理函數(shù)
- (void)buttonClick {
    // 刷新狀態(tài)欄
    [self setNeedsStatusBarAppearanceUpdate];
}

參考文章:
UIViewController's prefersStatusBarHidden not working

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容