为啥 UIImagePickerController 不能推入导航栈?

Posted

技术标签:

【中文标题】为啥 UIImagePickerController 不能推入导航栈?【英文标题】:Why can’t UIImagePickerController be pushed into navigation stack?为什么 UIImagePickerController 不能推入导航栈? 【发布时间】:2011-01-22 06:34:11 【问题描述】:

使用pushViewController推送UIImagePickerController时:

[self.navigationController pushViewController:pvc animated:YES];

会出现如下错误:

不支持推送导航控制器

正确的解决方案是使用presentModalViewController:

[self presentModalViewController:pvc animated:YES];

有人可以解释为什么这是必要的吗? UIViewController 中隐藏了什么?

谢谢!

【问题讨论】:

【参考方案1】:

Apple 不允许堆叠导航栏。由于图像选择器有自己的导航栏,它不能放在导航堆栈中。结果会导致用户混淆,因为会有两个栏、两组导航项、两个标题等。

【讨论】:

但可以使用navigationBarHidden 属性隐藏其中一个条形 没错,如果我们想使用 UIImagePickerViewController 和 [picker setSourceType:UIImagePickerControllerSourceTypeCamera];

以上是关于为啥 UIImagePickerController 不能推入导航栈?的主要内容,如果未能解决你的问题,请参考以下文章

ViewController 生命周期 UINavigationController

如何从 webview 使用 UIImagePickerController

iPhone OS 3.0 中的 UIImagePickerController

iOS开发——打开手机相册,获取图片

如何使用 iphone 中的核心数据将图像存储到 sqlite? [复制]

你应该同步运行方法吗?为啥或者为啥不?