iOS info.plist文件中View controller-based status bar appearance屬性

info.plist文件中,View controller-based status bar appearance項(xiàng)設(shè)為YES,則View controller對status bar的設(shè)置優(yōu)先級高于application的設(shè)置。為NO則以application的設(shè)置為準(zhǔn),view controller的prefersStatusBarHidden方法無效,根本不會被調(diào)用的。

一、如果View controller-based status bar appearance 設(shè)為YES。

這時 view controller中對status bar的設(shè)置優(yōu)先級高于application的設(shè)置,用下面的方式隱藏status bar:

1、在view controller中調(diào)用setNeedsStatusBarAppearanceUpdate,更新status bar的顯示。
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {

        [self prefersStatusBarHidden];

        [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];

    }
}
2、覆蓋view controller的prefersStatusBarHidden的實(shí)現(xiàn),返會YES。
- (BOOL)prefersStatusBarHidden
{
    return YES;
}

二、如果View controller-based status bar appearance 設(shè)為NO,這時application的設(shè)置優(yōu)先級最高,用下面的方式隱藏status bar:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];

綜合上面的結(jié)論,如果需要支持iOS6及以上版本,則處理方式如下:

一、如果View controller-based status bar appearance 設(shè)為NO。

則都是用下面的方法隱藏status bar。

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];

二、如果View controller-based status bar appearance 設(shè)為YES。

則需要判斷當(dāng)前系統(tǒng)版本是iOS7以下版本(即iOS6)還是iOS7以上。如果是iOS7以下的版本,則還通過sharedApplication隱藏。

如果是iOS7以上的版本系統(tǒng),則用setNeedsStatusBarAppearanceUpdate加prefersStatusBarHidden的方式來隱藏 status bar。

取info.plist中 View controller-based status bar appearance中的設(shè)置:

NSNumber *isVCBasedStatusBarAppearanceNum = [[NSBundle mainBundle]objectForInfoDictionaryKey:@"UIViewControllerBasedStatusBarAppearance"];

if (isVCBasedStatusBarAppearanceNum) {

    _isVCBasedStatusBarAppearance = isVCBasedStatusBarAppearanceNum.boolValue;

} else {

    _isVCBasedStatusBarAppearance = YES; // default

}

參考鏈接:http://blog.csdn.net/yongyinmg/article/details/39928367

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

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

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