UIImagePickerController 隐藏状态栏 iOS 8

Posted

技术标签:

【中文标题】UIImagePickerController 隐藏状态栏 iOS 8【英文标题】:UIImagePickerController hiding status bar iOS 8 【发布时间】:2015-04-21 05:36:39 【问题描述】:

我希望在我的应用中隐藏状态栏。在我的 pList 中,我设置了: 状态栏最初是隐藏的 - 是 查看基于控制器的状态栏外观 - 否

在我展示 UIImagePickerController 之前,这可以正常工作。它想显示状态栏。因此,在导航控制器委托的 willShowViewController 中,我调用 [[UIApplication sharedApplication] setStatusBarHidden:YES]。这实际上隐藏了状态栏,但是在 navigationController 中有一个像动画一样的移动。我花了一些时间试图停止这个动画。任何人有任何想法如何阻止它?谢谢。

【问题讨论】:

【参考方案1】:

试试看

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

【讨论】:

【参考方案2】:

继承UIImagePickerController并定义prefersStatusBarHidden方法,如果要隐藏状态栏,返回YES。

【讨论】:

我试过它仍然可以动画。顺便说一句,对于所有建议在子类、类别和 uiviewcontrollers 中使用 prefersStatusBarHidden 的人来说,这只会被称为基于视图控制器的状态栏外观设置为 YES。否则它永远不会被调用。 有道理。从 viewWillAppear 或 viewDidAppear 调用 setStatusBarHidden: 怎么样? 我假设您指的是 UIImagePickerController 所在的 UIViewController。我试过它仍然闪烁。我已经尝试对 UIImagePickerController 进行子类化并将其放入 iewWillAppear 和 viewDidAppear 中。仍然闪烁。我认为这是 ios 8 中的一个错误。我已经提交了一个 Radar 错误。到目前为止,Apple 没有回应。【参考方案3】:

事实证明,这是 iOS 8 中的一个错误。我提交了一个雷达错误,Apple 建议我尝试 beta 8.3。在测试版中,我不再看到动画。

【讨论】:

以上是关于UIImagePickerController 隐藏状态栏 iOS 8的主要内容,如果未能解决你的问题,请参考以下文章

UIImagePickerController、自定义 UIButton 和 AutoLayout

UIImagePickerController 实况照片

OCMock 模拟 UIImagePickerController

UIImagePickerController 图像没有改变

无法弹出 UIImagePickerController

为啥 UIImagePickerController 不能推入导航栈?