我为此挣扎了两天,并相信这是我应该寻求帮助的时刻。在我搜索 SOF 一段时间后,没有任何答案可以解决我的问题。这是我的申请...
在申请中,
- 设备是 iPad,iOS 6
- RootViewController 是 NavigationController
- TopViewController 是 TabBarController
- 在这个 TabBarController 中,我从导航栏的右栏按钮展示了一个 popoverController
- 在呈现弹出框时,有一个按钮允许用户通过获取新图像或从现有图像中选择图像。
- 为了选择新的,我展示了 ViewController UIImagePickerController 以允许用户使用 divice 相机拍照。presentModalViewController:animated:如果 iOS < 6,并且presentViewController:animated:completion:对于 iOS > 6
- 我还在演示之前隐藏状态栏
- 要从现有照片中进行选择,我会使用 PresentPopoverFromBarButtonItem:permitArrowDirections:animated:
- PopoverViewController 也被 A TabBarController 引用
这是问题
- 如果用户尝试先选择新的 UIImagePickerController 将始终失败,但出现异常“应用程序试图以模态方式呈现活动控制器 <[试图呈现的视图控制器的名称]>”
- 但是,如果用户尝试从相机胶卷中选择一次图像,然后尝试再次拍摄新的图像,它不会失败。
这是我尝试过的
- 从 RootViewController 呈现
- 从 TopViewController (TabBarController) 呈现
- 从 popoverViewController 本身呈现
- 从 TabBarController 的选项卡呈现
- 在演示之前隐藏 popoverViewController
- 来自 popoverViewController 中的 textField 的 resignFirstResponder
这是我正在使用的当前代码
// PopoverViewController, presented by a tab in TabBarController
- (IBAction)takePhoto:(id)sender {
[self.delegate takePhotoWithDeviceCamera];
}
// A Tab in TabBarController, delegate of popoverViewController
- (void)takePhotoWithCamera {
[[UIApplication sharedApplication] setStatusBarHidden:YES];
if ([UIDevice OSVersion] < 6.0) {
[self presentModalViewController:cameraPicker animated:YES];
} else {
[self presentViewController:cameraPicker animated:YES completion:nil];
}
}
知道什么会导致这个错误吗?欢迎任何建议。谢谢你。