最近做的一个项目,在调用相机返回后状态栏消失了,与之前一个项目对比,没有什么差别,但是就是会这样,找了很久原因无果,只好用下面的方法先做了,但我觉得本质还是项目设置的问题,忘大神看到了指点一二。
暂时用的方法:
1:在项目调用相机的ViewController里重写preferredStatusBarStyle方法。
-(UIStatusBarStyle)preferredStatusBarStyle
{
returnUIStatusBarStyleDefault;
}
2:在相机返回的地方调用[selfsetNeedsStatusBarAppearanceUpdate];
-(void)imagePickerControllerDidCancel:(UIImagePickerController*)picker
{
[picker dismissViewControllerAnimated:YEScompletion:^{
[self setNeedsStatusBarAppearanceUpdate];
}];
}
以上设置我是在ios10.3的手机上测试的。
ps:终于找到根本原因了,我用了一个库,库里面有写一个UINavigationController的category
里面重写了两个方法:
- (UIViewController*)childViewControllerForStatusBarStyle {
returnself.visibleViewController;
}
- (UIViewController*)childViewControllerForStatusBarHidden {
returnself.visibleViewController;
}
把这两个去掉就正常了,具体是什么原理还在思考中,大神路过的话指点一下。·