0

I am following Apple documentation for UIDocumentMenuViewController and the following is my code. importMenu.delegate = self doesn't work and Xcode shows: Cannot assign value of type 'ViewController' to type 'UIDocumentMenuDelegate?' . Please help. Thanks!

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)

   }
}
Özgür Ersil
  • 6,909
  • 3
  • 19
  • 29
Mike
  • 7
  • 4

2 Answers2

1

According to UIDocumentMenuDelegate Protocol Reference, your ViewController must conforms to UIDocumentMenuDelegate and must implements documentMenu:didPickDocumentPicker:

extension ViewController: UIDocumentMenuDelegate {
    func documentMenu(documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
        // do stuffs here
    }
}
Cheng-Yu Hsu
  • 1,029
  • 7
  • 11
0

your delegation class should extend from UIDocumentMenuViewDelegate in the view controller

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)

   }
}
Özgür Ersil
  • 6,909
  • 3
  • 19
  • 29
  • Hi Özgür Ersil, according to the [document](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDocumentMenuViewController_Class/#//apple_ref/occ/instp/UIDocumentMenuViewController/delegate), the type of `delegate` is `UIDocumentMenuDelegate` not `UIDocumentMenuViewControllerDelegate`. and as far as i know there isn't something called `UIDocumentMenuViewControllerDelegate` in `UIKit` – Cheng-Yu Hsu May 05 '16 at 13:58