首页 > 解决方案 > 自定义单元格和对象类中的首选状态栏隐藏

问题描述

由于不推荐使用setStatusBarHidden,我们将在 中使用preferredStatusBarHiddenUIViewControllers。但是,如何在对象类或自定义UITableviewCell类中轻松隐藏和显示。UIApplication我们曾经像这样 隐藏节目

[[UIApplication sharedApplication] setStatusBarHidden:YES];

现在它已被弃用,只能在 中使用UIViewControllers,有没有办法将它们隐藏在自定义 tableview 单元格和NSObject类中?

标签: iosobjective-ciphoneuistatusbar

解决方案


prefersStatusBarHiddenUIViewController对象的方法,而不是UIApplication. 所以你应该设置它UIViewController。像这样。

- (BOOL)prefersStatusBarHidden {

   return NO;
}

笔记:

  • 如果您更改此方法的返回值,请调用该setNeedsStatusBarAppearanceUpdate方法。
  • 对于childViewController,要指定子视图控制器应控制首选状态栏隐藏/未隐藏状态,请实现该childViewControllerForStatusBarHidden方法。

如果您想更动态地隐藏或显示状态栏

你可以应用这样的逻辑,

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { shouldHideStatusBar = (shouldHideStatusBar)? NO: YES; [self setNeedsStatusBarAppearanceUpdate]; }

您也可以将此代码添加到您的按钮事件中

确保将“基于视图控制器的状态栏外观”添加到您的 info.plist 中,设置为 YES,否则事情似乎不起作用。


推荐阅读