无法在单个 UIViewController 中隐藏状态栏

Posted

技术标签:

【中文标题】无法在单个 UIViewController 中隐藏状态栏【英文标题】:Unable to hide statusbar in single UIViewController 【发布时间】:2016-08-11 13:12:49 【问题描述】:

我想在单视图控制器中隐藏状态栏,但我的代码不起作用。 我正在使用下面的代码

-(BOOL)prefersStatusBarHidden

    return YES;

&

-(void)viewWillApper:(BOOL)animated
[[UIApplication sharedApplication] setStatusBarHidden:YES];

-(void)viewWillDisappear:(BOOL)animated
[[UIApplication sharedApplication] setStatusBarHidden:NO];

【问题讨论】:

你想隐藏一个vc ya all vc 你试过我的答案了吗? 您好,您有解决方案,否则我可以帮助您? prefersStatusBarHidden 有什么问题?一定是工作!第二种方法似乎也适用于早期的 ios 版本。如果您使用 ios 7,请尝试添加 [super viewWillApper];在隐藏和 [super viewWillDisappear] 之前;展示后。 【参考方案1】:

您应该将此值添加到 plist:“查看基于控制器的状态栏外观”并将其设置为“否”。

application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions write

 [[UIApplication sharedApplication] setStatusBarHidden:YES];

在 viewdidload 中添加以下行

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

并添加新方法

 - (BOOL)prefersStatusBarHidden 
          return YES;
  

【讨论】:

【参考方案2】:

如果您在应用程序的plist 中将View controller-based status bar appearance 设置为YES,则将此代码放入视图控制器中:

- (BOOL)prefersStatusBarHidden 
    return YES;

如果View controller-based status bar appearance 设置为NO,只要您想隐藏状态栏,请执行以下操作。

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

【讨论】:

【参考方案3】:

试试这个对我有帮助-:

-(BOOL)prefersStatusBarHidden


  return YES;


【讨论】:

【参考方案4】:

在单个 VC 上隐藏状态栏:

1) 将此值添加到 plist:

“查看基于控制器的状态栏外观”并将其设置为“YES”

2) 在 vi​​ewWillAppear 中添加以下内容:

[self prefersStatusBarHidden];

3) 添加新方法:

-(BOOL)prefersStatusBarHidden

    return YES; 

【讨论】:

以上是关于无法在单个 UIViewController 中隐藏状态栏的主要内容,如果未能解决你的问题,请参考以下文章

iOS 程序在单个 UIViewController 中使用多个 UITableView

单个 UIViewController 上的 2 个 UICollectionViews,具有不同数量的部分

是否可以跨多个 UIViewController 使用单个 UIView?

单个 UIViewController 中的多个集合视图未调用 cellForItemAtIndexPath indexPath

推送视图不从基于单个视图的应用程序推送 UIViewController

在 TTNavigator (Three20) 中使用单个 URL 推送两个 UIViewController