我可以使用现有的UIPopoverController和UINavigationController来显示UIImagePickerController吗?
我已经尝试了很多,但打开UIImagePickerController的唯一方法是关闭现有的Popover并打开一个新的。但我想使用现有的UINavigationController。
我的iPad应用程序中有一些具有不同操作(在弹出窗口中)的按钮 - 如果用户选择“图像”,则有另一个带有“来自现有图像”或“来自相机”的视图控制器 - 如果我使用“现有图像” “我想在我现有的Popover控制器中打开Photolibrary(因为当用户选择一个Image时,我想转到我的UINavigationController中的下一个ViewController)
我在这里打开我的popover:
var popoverAddItems = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("popoverAddItems") as PopoverAddItemsViewController
var navigationPopover:UINavigationController!
var popover:UIPopoverController!
...
navigationPopover = UINavigationController(rootViewController: popoverAddItems)
popover = UIPopoverController(contentViewController: navigationPopover)
popover.popoverContentSize = CGSizeMake(320,120)
popover.presentPopoverFromRect(currentCell.LabelCellTitle.frame, inView: currentCell.LabelCellTitle.superview!, permittedArrowDirections: UIPopoverArrowDirection.Left, animated: true)
好的,现在我在我的popoverAddItems ViewController上,但我怎么能到这里,在这个UINavigationController中添加一个Photolibrary?
所以我可以在关闭现有的Popover时使用它:
var imagePickerViewController = PopoverImagePickerViewController()
imagePickerViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
popover = UIPopoverController(contentViewController: imagePickerViewController)
popover.popoverContentSize = CGSizeMake(320,120)
popover.presentPopoverFromRect(currentCell.LabelCellTitle.frame, inView: currentCell.LabelCellTitle.superview!, permittedArrowDirections: UIPopoverArrowDirection.Left, animated: true)
任何想法?任何帮助将不胜感激
答案 0 :(得分:2)
要在popover中显示UIImagePickerController(在您的情况下 - 是UIPopoverController中的UINavigationController),请在“showImagePicker:”例程中使用以下代码:
UIImagePickerController* imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.delegate = self;
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // Use your type here
imagePickerController.modalInPopover = YES;
imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self.navigationController presentViewController:imagePickerController animated:YES completion:NULL];
当你从UINavigationControllers viewController层次结构中调用它时,一切都很好。如果从其他地方调用它,请确保使用UIPopoverController中用于呈现UIImagePickerController的UINavigationController项。