IOS调用系统相机后状态栏消失BUG

相信很多人都遇到过这个Bug。在使用UIImageViewController调用系统相册时,完全没这个问题,但是调用系统相机时,问题就出现了:

//UIImageViewDelegate代理
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    ...//在代理中,跳转到一个新界面VC
    [picker pushViewController:VC animated:YES];
}

在VC界面,我们可以看到,虽然是push,但是没有出现导航栏:
这里写图片描述

没办法,那我们手动加呗:

//在VC的ViewDidLoad中添加
[self.navigationController setNavigationBarHidden:NO animated:YES];

发现,高度44的导航栏有了,但是高度20的状态栏没有啊:
这里写图片描述
好吧,接着加:

//在VC的ViewDidLoad中添加
[self.navigationController setNavigationBarHidden:NO animated:YES];
[[UIApplication sharedApplication] setStatusBarHidden:NO];

发现,状态栏有了,可是怎么总感觉不对劲呢,仔细看才明白,现在的导航栏+状态栏的高度仍然只有44(图片和导航栏下边界黑线有20的距离)。
这里写图片描述
怎么会这样呢,后来发现,将VC中的那两句话换一下位就可以了(图片和导航栏下边界黑线20的高度不见了):

//在VC的ViewDidLoad中添加
[[UIApplication sharedApplication] setStatusBarHidden:NO];
[self.navigationController setNavigationBarHidden:NO animated:YES];

这里写图片描述
原因可能是IOS7后,状态栏集成到了导航栏上,如果导航栏先显示,那么44的高度就定了,之后再显示状态栏,也只会在44的高度内显示。但是如果先显示状态栏,会给状态栏20的高度,在显示导航栏,又会给导航栏44的高度,这样就不会有问题了。。。Perfect

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值