我试图隐藏一半的状态栏。具体来说,我正在使用REFrostedViewController作为我的侧抽屉,当它出来时,我希望它能够覆盖这个图片中的状态(应用程序是谷歌的收件箱)。
UIViewController的当前层次结构如下:
- REFrostedViewController
|--MenuViewController
|--NavigationControler
|--ContentViewController
我将UIViewControllerBasedStatusBarAppearance
设置为YES
。在我的抽屉菜单(MenuViewController)中,我有方法
- (BOOL)prefersStatusBarHidden
{
return YES;
}
在我的导航控制器中,我有:
- (UIViewController *)childViewControllerForStatusBarHidden {
return self.frostedViewController.menuViewController;
}
这会隐藏所有屏幕中的状态栏。当我做的时候
- (UIViewController *)childViewControllerForStatusBarHidden {
if (self.isDrawerOpen)
{
return self.frostedViewController.menuViewController;
} else {
return self.frostedViewController.contentViewController;
}
}
它崩溃了。 self.frostedViewController.contentViewController
包含一个navigationController(也实现了prefersStatusBarHidden
方法)