为什么 UIDocumentMenu 委托给自己不起作用?
Why UIDocumentMenu Delegate to self doesn't work?
我正在关注 UIDocumentMenuViewController 的 Apple 文档,以下是我的代码。 importMenu.delegate = self 不起作用并且 Xcode 显示:无法将类型 'ViewController' 的值分配给类型 'UIDocumentMenuDelegate?' 。请帮忙。谢谢!
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let importMenu = UIDocumentMenuViewController(documentTypes: ["public.text", "public.data"], inMode: .Import)
importMenu.delegate = self
self.presentViewController(importMenu, animated: true, completion: nil)
}
}
您的委托 class 应该从视图控制器中的 UIDocumentMenuViewDelegate
扩展
import UIKit
class ViewController: UIViewController, UIDocumentMenuViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let importMenu = UIDocumentMenuViewController(documentTypes: ["public.text", "public.data"], inMode: .Import)
importMenu.delegate = self
self.presentViewController(importMenu, animated: true, completion: nil)
}
}
根据 UIDocumentMenuDelegate Protocol Reference,您的 ViewController
必须符合 UIDocumentMenuDelegate
并且必须实现 documentMenu:didPickDocumentPicker:
extension ViewController: UIDocumentMenuDelegate {
func documentMenu(documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
// do stuffs here
}
}
我正在关注 UIDocumentMenuViewController 的 Apple 文档,以下是我的代码。 importMenu.delegate = self 不起作用并且 Xcode 显示:无法将类型 'ViewController' 的值分配给类型 'UIDocumentMenuDelegate?' 。请帮忙。谢谢!
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let importMenu = UIDocumentMenuViewController(documentTypes: ["public.text", "public.data"], inMode: .Import)
importMenu.delegate = self
self.presentViewController(importMenu, animated: true, completion: nil)
}
}
您的委托 class 应该从视图控制器中的 UIDocumentMenuViewDelegate
扩展
import UIKit
class ViewController: UIViewController, UIDocumentMenuViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let importMenu = UIDocumentMenuViewController(documentTypes: ["public.text", "public.data"], inMode: .Import)
importMenu.delegate = self
self.presentViewController(importMenu, animated: true, completion: nil)
}
}
根据 UIDocumentMenuDelegate Protocol Reference,您的 ViewController
必须符合 UIDocumentMenuDelegate
并且必须实现 documentMenu:didPickDocumentPicker:
extension ViewController: UIDocumentMenuDelegate {
func documentMenu(documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
// do stuffs here
}
}