Почему 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)

   }
}
Другие вопросы по тегам