2017-03-08 6 views
0

나는 CFCssets로 PDF 파일을 가지고 있는데, 이것은 문제없이 UIWebView에서 호출되고 표현됩니다. CKAsset이 ActivityViewController에 표시되도록 코드를 조작했지만 func 메서드 내에 있으며이 부분을 Action 버튼에 할당하려고합니다. 내 질문에 함수 내에서 몇 줄을 어떻게 호출 할 수 있습니까? 작업 버튼을 작동 시키려면 func 외부에 충분한 참조가 있습니까? 여기 ActivityViewController와 공유 할 수있는 UIWebView에 대한 CKAsset (NSData)

는 FUNC 코드 -

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

나는 그것을 이해했다 (나는 생각한다). 여기에 간다 -

내가

self.filenameURL = [(asset1.fileURL)] 

let filenameURL = [(asset1.fileURL)] 

변경은 다음의 ViewController 클래스에

var filenameURL : Any? 

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

이 내가없는 것 같았다 키는 어떤 생각?하지만 난이었다 더 근본적인 무언가가 있다면 수정 될 행복 - 어느 날은 actionButton에 관련 코드를 추가 할 수 있어야 할 곳에 없는.