我有一个嵌入在UITabBarController中的UIViewController。在我的PhotoViewController
上,用户可以选择添加照片并调用UIImagePickerController
。用户选择照片并弹出视图后,导航栏将消失。
显示导航栏。
这是UIImagePickerController
视图,看起来CANCEL按钮位于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];
虽然代表说这是不兼容的。
如何更正问题?
答案 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)
我不知道为什么它会以这种方式工作,但也许可以帮助某人。请解释一下是否有答案。