解雇uiimagepickerviewcontroller后如何重新显示状态栏

时间:2012-08-17 22:37:23

标签: iphone objective-c ios cocoa-touch

当我以模态方式呈现我的uiimagepickerviewcontroller时,我正在隐藏我的应用程序中的状态栏。

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

在回调方法中:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

我执行以下方法:

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent animated:YES];

致电之前:

[picker dismissViewControllerAnimated:YES completion:^() {}];

我试过“显示”完成块中的状态栏无济于事。在解雇我的uiimagepickerviewcontroller后,我应该如何让状态栏重新出现?

2 个答案:

答案 0 :(得分:0)

尝试将其放回视图控制器解雇完成处理程序:

[picker dismissViewControllerAnimated:YES completion:^(BOOL done){
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent animated:YES];
}];

虽然这很奇怪,但没有任何理由说明为什么这样做不会对我跳出来。

答案 1 :(得分:0)

我在iOS 11中遇到了同样的问题。我可以通过以下方式重新显示statusBar:

Info.plist中,将View controller-based status bar appearance设为YES

enter image description here

在显示UIImagePickerController的视图控制器中,实现

- (BOOL)prefersStatusBarHidden {
    return NO;
}