弹出UIImagePickerController后,UINavigationBar消失

时间:2016-06-23 18:23:13

标签: ios uinavigationcontroller uinavigationbar uiimagepickercontroller

我有一个嵌入在UITabBarController中的UIViewController。在我的PhotoViewController上,用户可以选择添加照片并调用UIImagePickerController。用户选择照片并弹出视图后,导航栏将消失。

显示导航栏。

Start

这是UIImagePickerController视图,看起来CANCEL按钮位于NavigationBar下方。 (在这张照片中很难看到。)

enter image description here

弹出UIImagePickerController并重新加载视图后,NavigationBar消失了。

enter image description here

以下是我致电UIImagePickerController的方法。我继承自UIImagePickerControllerDelegate

enter image description here

 UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
    imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
    imagePickerController.sourceType = sourceType;
    imagePickerController.delegate = self;

    if (sourceType == UIImagePickerControllerSourceTypeCamera) {
        imagePickerController.showsCameraControls = YES;
    }

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

虽然代表说这是不兼容的。

enter image description here enter image description here

如何更正问题?

2 个答案:

答案 0 :(得分:1)

我添加了

imagePickerController.modalPresentationStyle = UIModalPresentationFullScreen;
imagePickerController.modalTransitionStyle   = UIModalTransitionStyleCoverVertical;

这似乎把imagePickerController置于当前视图之上。

答案 1 :(得分:0)

经过几个小时的搜索,我没有找到合适的解决方案。问题是我将导航栏隐藏在显示图像选择器的视图中,但是当我这样做时:

imagePicker.setNavigationBarHidden(false, animated: false)

在显示present()之前仍然出现问题,但是当我每次在dismiss()之后都这样做时,它可以正常工作...就像这样:

imagePicker.dismiss(animated: true)
imagePicker.setNavigationBarHidden(false, animated: false)

我不知道为什么它会以这种方式工作,但也许可以帮助某人。请解释一下是否有答案。