我发现人们在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];
此代码将关闭图像选择器,但状态栏将保持隐藏状态。
有任何想法如何解决这个问题?
答案 0 :(得分:1)
好的,我想出了什么。问题不在于setStatusBarHidden:NO本身,而是与图像选择器的组合。
似乎在iOS 7.1中,图像选择器(相机一个)将自己隐藏状态栏(在iOS 7.0中并非如此)。所以,如果我也手动隐藏它,状态栏会被隐藏两次,这似乎会破坏一些东西。
总结:在iOS 7.1中显示相机图像选择器之前手动隐藏状态栏是没有意义的,因为图像选择器本身会隐藏它。
不使用图像选择器隐藏和显示状态栏就可以了。