2017-03-08 90 views
0

我有PDF文件作爲CKAssets,這是調用和呈現在UIWebView沒有問題。我已經設法操作代碼,因此CKAsset將顯示在ActivityViewController中,但這是在func方法中,我希望將此部分分配給一個Action按鈕。我的問題是如何在函數中調用幾行?或者在func之外有足夠的引用來使動作按鈕有效?CKAsset(NSData)與UIWebView共享與ActivityViewController

這裏是功能代碼功能 -

func queryRecord() { 

    let container = CKContainer.default() 
    let publicDatabase = container.publicCloudDatabase 
    let predicate = NSPredicate(format: "recordID = %@", CKRecordID(recordName : documentID)) 
    let query = CKQuery(recordType: "Documents", predicate: predicate) 

    publicDatabase.perform(query, inZoneWith: nil, completionHandler: ({results, error in 

     if (error != nil) { 
      DispatchQueue.main.async() { 
       self.notifyUser("Cloud Access Error", message: error!.localizedDescription) 
      } 

     } else { 
      if results!.count > 0 { 

       let record = results![0] 
       print(record) 

       DispatchQueue.main.async() { 

       let docTitle = record.object(forKey: "documentName") as! String 

        self.title = "\(docTitle)" 

        let docType = record.object(forKey: "documentType") as! String 

        if docType == "PDF" || docType == "pdf" { 


        if let asset1 = record.object(forKey: "documentFile") as? CKAsset { 
         let doc1Data : NSData? = NSData(contentsOf:asset1.fileURL) 
         self.docWebView.load(doc1Data! as Data, mimeType: "application/pdf", textEncodingName: "UTF-8", baseURL: NSURL() as URL) 
         let filenameURL = [(asset1.fileURL)] 

         let activityController = UIActivityViewController(activityItems: filenameURL, applicationActivities: nil) 
         self.present(activityController, animated: true, completion: nil) 

         } 

        } else { 

我試圖引用filenameURL代碼之外,但它不承認filenameURL是無類的成員。

回答

0

我想通了(我認爲)。這裏去 -

我改變

let filenameURL = [(asset1.fileURL)] 

self.filenameURL = [(asset1.fileURL)] 

然後加入

var filenameURL : Any? 

到ViewController類。這讓我相關的代碼添加到actionButton -

@IBAction func activityVCButton(_ sender: UIBarButtonItem) { 
     let activityController = UIActivityViewController(activityItems: (filenameURL as? [Any])!, applicationActivities: nil) 
     self.present(activityController, animated: true, completion: nil) 
     } 

我覺得關鍵,我似乎丟失是任何?,但我很高興,如果有更多的東西根本我是要糾正失蹤。