Почему UIDocumentMenu Делегат для себя не работает?
Я следую документации Apple для UIDocumentMenuViewController, и мой код приведен ниже. 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)
}
}
2 ответа
Решение
Согласно справочному протоколу UIDocumentMenuDelegate, ваш ViewController
должен соответствовать UIDocumentMenuDelegate
и должен реализовывать documentMenu:didPickDocumentPicker:
extension ViewController: UIDocumentMenuDelegate {
func documentMenu(documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
// do stuffs here
}
}
Ваш класс делегирования должен простираться от 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)
}
}