首先让我告诉你我要做的事情:
UIPopoverController
UINavigationController
作为其contentViewController
(这是在iPad上)UIViewController
的第一个UINavigationController
将是一个自定义视图控制器,它有两个按钮:“拍照”和“从库中选择”。 setSourceType:UIImagePickerControllerSourceTypeCamera
上的“拍照”按钮UIImagePickerController
并将其推入UINavigationController
setSourceType:UIImagePickerControllerSourceTypePhotoLibrary
上的UIImagePickerController
点击“从库中选择”按钮并将其推入UINavigationController
我希望能够完成所有这些并且能够允许用户在UINavigationController允许的情况下向后导航。
问题是,由于UIImagePickerController
也是UINavigationController
,我无法按照#3和#4中的规定将其推送到另一个UINavigationController
。
问题:
UIImagePickerController
和自定义视图控制器吗? UINavigationController
?答案 0 :(得分:0)
添加以下代码(如详细here)最终为我解决了这个问题。
使用navigationController:willShowViewController:animated:
方法访问navigationBar。
然后使用此代码,您可以添加“取消”按钮。
if ([navigationController isKindOfClass:[UIImagePickerController class]]) {
UINavigationBar *bar = navigationController.navigationBar;
UINavigationItem *top = bar.topItem;
UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(imagePickerControllerDidCancel:)];
[top setLeftBarButtonItem:cancel];
} else {
//do non imagePickerController things
}