单视图隐藏/样式中的状态栏
Posted
技术标签:
【中文标题】单视图隐藏/样式中的状态栏【英文标题】:Status bar in single view hide/ style 【发布时间】:2014-02-08 16:11:37 【问题描述】:在我的应用中,我有多个视图。我需要隐藏一个视图的状态栏(这个 vC2 的顺序是 navigationC -> VC ->push to vC2)。它首先通过设置工作
View controller-based status bar appearance = NO
在 plist 中
然后使用
[UIApplication sharedApplication].statusBarHidden = YES;
在视图中将出现
和[UIApplication sharedApplication].statusBarHidden = NO;
in viewWillDisappear
恢复状态栏。
然后,我想在同一个应用程序中为另一个单一视图 (VC3) 设置浅色样式的状态栏。只有一种方法适合我是
通过设置View controller-based status bar appearance = YES
并使用
-(UIStatusBarStyle)preferredStatusBarStyle
return UIStatusBarStyleLightContent;
在 VC3.m 中
我的问题是在View controller-based status bar appearance
附近,它与 NO 值一起用于隐藏状态栏,并与 YES 值一起用于状态栏的浅色样式
我可以在我的应用中结合隐藏/和样式状态栏吗?
我的目标是ios7
【问题讨论】:
【参考方案1】:你可以在 viewController 中使用这个函数:
- (BOOL)prefersStatusBarHidden
return YES;
plist 布尔值必须为 YES,您可以添加更多内容:
试试
[self setNeedsStatusBarAppearanceUpdate]
如果您将视图控制器作为其他视图控制器的子级,则应由最后一个子级来决定
如果 VC 是另一个 VC 的子级(这在您子类化的第一级 VC 上,如果您使用没有子类化的导航则不需要)
- (UIViewController *)childViewControllerForStatusBarHidden
return _myChildViewController;
【讨论】:
我已经试过了,状态栏还在。是否需要在视图或 plist 中添加一些内容? 你对VC有什么特殊配置吗? 不,我想..像什么特殊配置? 通过将 tge plist 设置为 YES,我失去了状态栏的隐藏属性 通过将 Plist 设置为 yes,您必须控制每个 VC 的行为。我发现难以控制的唯一方法是当我有一个 navigationC -> PageViewC -> VC 架构时以上是关于单视图隐藏/样式中的状态栏的主要内容,如果未能解决你的问题,请参考以下文章