试图导出到csv但我如何从委托实现?

ale*_*lex 4 delegates implements ios swift

[new to swift]我测试这个函数来导出一些简单的文件

    @IBAction func exportFile(delegate: UIDocumentInteractionControllerDelegate) {
        print("export csv")
       let fileName = tmpDir.stringByAppendingPathComponent("myFile.csv")
        let url: NSURL! = NSURL(fileURLWithPath: fileName)

        if url != nil {
            let docController = UIDocumentInteractionController(URL: url)
            docController.UTI = "public.comma-separated-values-text"
            docController.delegate = delegate
            docController.presentPreviewAnimated(true)

        }
}
 // Return the view controller from which the UIDocumentInteractionController will present itself.
    func documentInteractionControllerViewControllerForPreview(controller: UIDocumentInteractionController)-> UIViewController {
        return self
    }
Run Code Online (Sandbox Code Playgroud)

但是当我点击导出按钮时,我收到了消息

UIDocumentInteractionController delegate must implement documentInteractionControllerViewControllerForPreview: to allow preview
Run Code Online (Sandbox Code Playgroud)

我想

class ViewController:UIViewController,UIDocumentInteractionControllerDelegate {

会足够吗?

我试过Self.documentInteractionControllerViewForPreview(docController)

[编辑]原来我犯了以下错误docController.delegate = self //委托

Abh*_*nav 5

您需要实现以下委托方法.代表是从服务提供者到服务使用者的回调,为即将发生的操作做好准备.在某些情况下,您必须提供详细信息(称为数据源)才能使用所述功能.

func documentInteractionControllerViewControllerForPreview(controller: UIDocumentInteractionController!) -> UIViewController! {
    return self
}

func documentInteractionControllerViewForPreview(controller: UIDocumentInteractionController!) -> UIView! {
    return self.view
}

func documentInteractionControllerRectForPreview(controller: UIDocumentInteractionController!) -> CGRect {
    return self.view.frame
}
Run Code Online (Sandbox Code Playgroud)

阅读委托如何运作.另外,请在此处查看您的具体案例.