无法在iOS 7.1中取消隐藏状态栏

时间:2014-04-17 21:08:44

标签: ios ios7.1 ios7-statusbar

我发现人们在iOS 7.1中隐藏状态栏时遇到问题,但我遇到了相反的问题。一旦被隐藏,我就无法取消隐藏。 :)

这段代码在iOS 7和7.1上都能很好地运行。它将隐藏状态栏并显示图像选择器。

if (sourceType == UIImagePickerControllerSourceTypeCamera)
{
    imagePickerController.showsCameraControls = YES;
    if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
        [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
    }
}

self.imagePickerController = imagePickerController;
[self presentViewController:imagePickerController animated:YES completion:nil];

然而,应该带回状态栏的部分在iOS 7.1中不再起作用了:

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
[self dismissViewControllerAnimated:YES completion:NULL];

此代码将关闭图像选择器,但状态栏将保持隐藏状态。

有任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

好的,我想出了什么。问题不在于setStatusBarHidden:NO本身,而是与图像选择器的组合。

似乎在iOS 7.1中,图像选择器(相机一个)将自己隐藏状态栏(在iOS 7.0中并非如此)。所以,如果我也手动隐藏它,状态栏会被隐藏两次,这似乎会破坏一些东西。

总结:在iOS 7.1中显示相机图像选择器之前手动隐藏状态栏是没有意义的,因为图像选择器本身会隐藏它。

不使用图像选择器隐藏和显示状态栏就可以了。