为什么UIImagePickerController无法进入导航堆栈?

For*_*est 17 uiimagepickercontroller pushviewcontroller presentmodalviewcontroller ios

如果你使用pushViewController来推送UIImagePickerController

[self.navigationController pushViewController:pvc animated:YES];
Run Code Online (Sandbox Code Playgroud)

你会得到错误的

不支持推送导航控制器

正确的解决方案是使用presentModalViewController

[self presentModalViewController:pvc animated:YES];
Run Code Online (Sandbox Code Playgroud)

那么这个案子的深层原因是什么?UIViewController中隐藏了什么?

谢谢

小智 17

Apple不允许堆叠导航栏.由于图像选择器具有自己的导航栏,因此无法将其放置在导航堆栈中.结果会导致用户混淆,因为会有两个小节,两组导航项,两个标题等.

  • 但是可以使用`navigationBarHidden`属性隐藏其中一个条 (3认同)
  • 确切地说,如果我们想要将UIImagePickerViewController与[picker setSourceType:UIImagePickerControllerSourceTypeCamera]一起使用,该怎么办? (3认同)