如何在iOS 9和Swift的Popover中呈现UIImagePickerController

use*_*651 9 uiviewcontroller ipad ios swift

我正试图在带有iOS 9 beta 4和Swift的iPad上使用popover呈现照片库.首选方法是通过弹出窗口,但UIPopoverController现在已弃用.显然它现在已经完成UIViewController,但没有文档,或者我可以找到的示例代码.任何帮助将不胜感激!

谢谢!

小智 8

上面的答案几乎是正确的,除了popoverPresentationController必须在调用之前设置锚点presentViewController():

let myPicker = UIImagePickerController()
myPicker.delegate = self
myPicker.sourceType = .PhotoLibrary
myPicker.modalPresentationStyle = .Popover

let ppc = myPicker.popoverPresentationController
ppc?.barButtonItem = sender as? UIBarButtonItem
ppc?.permittedArrowDirection = .Any

presentViewController(myPicker, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

  • 除了设置barButtonItem之外,还可以设置一个从中显示弹出窗口的sourceView.如果您没有应从中显示弹出框的barButton,这将非常有用. (2认同)

Pri*_*ess 3

我在这里没有讨论图像选择器响应的委托和处理,这篇文章的目的只是考虑使用 UIImagePickerController,而不求助于已弃用的类和方法。

let myPicker = UIImagePickerController()
myPicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary

myPicker.modalPresentationStyle = UIModalPresentationStyle.Popover

self.presentViewController(myPicker, animated: true, completion: nil)

let popper = myPicker.popoverPresentationController
// returns a UIPopoverPresentationController
popper?.barButtonItem = sender as? UIBarButtonItem
Run Code Online (Sandbox Code Playgroud)

如果需要请更正