弹出 UIImagePickerController 后 UINavigationBar 消失

UINavigationBar disappears after UIImagePickerController is popped

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

显示导航栏。

这是 UIImagePickerController 视图,看起来好像取消按钮在 NavigationBar 下方。 (这张图很难看出来。)

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

我是这样称呼 UIImagePickerController 的。我继承自 UIImagePickerControllerDelegate

 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];

尽管代表说它不兼容。

我该如何纠正问题?

我加了

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

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

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

imagePicker.setNavigationBarHidden(false, animated: false)

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

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

我不知道为什么会这样,但可能对某些人有帮助。如果有人有答案,请解释一下。