2017-03-10 59 views
1

我在故事板中創建了一個新的視圖控制器。將它連接到ListViewController。 ListViewController將正確的數據填入aboutDict[String:Any]。該fileURLs[]是建立和func numberOfPreviewItems(in: QLPreviewController) -> Int被稱爲 - 調試器顯示fileURLs[]不出所料:self.fileURLs的previewController previewItem未被調用。 iOS 10,swift 3,模擬器

印刷描述:▿1元 - 0:文件:///用戶/肯特/庫/開發人員/ CoreSimulator /設備/ 5E23825C-DF99-455A-BEB1-F73398E7759F /數據/容器/捆綁/應用/ 307ED7DF-C07C-4C0A-BA78-938BABE7C22C/WINSystemInfo.app/ID-51A_E_PLUS2.pdf`

但不調用func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItemfunc previewController(_ controller: QLPreviewController, shouldOpen url: URL, for item: QLPreviewItem) -> Bool

我得到一個很好的ViewController,它被推入到導航堆棧中,後退按鈕的名稱正確,灰色頁面中心文本爲「無文件預覽」。

按'back'按鈕,調用func previewControllerWillDismiss(_ controller: QLPreviewController)。所以的一些的委託和數據源函數被調用。

我必須失去了一些東西簡單...

我在下面附我的課FileViewController.swift:

class FileViewController: QLPreviewController, QLPreviewControllerDelegate, QLPreviewControllerDataSource { 

    var aboutDict = [String: Any]() 

    // QuickLook data 
    var fileURLs = [QLPreviewItem]() 

    // MARK: - Lifecycle 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     let filename = aboutDict["filename"] as! String? 
     let filetype = aboutDict["filetype"] as! String? 

     title = aboutDict["title"] as! String? 
     dataSource = self 
     delegate = self 

     if let fileUrl = Bundle.main.url(forResource: filename, withExtension: filetype, subdirectory: nil, localization: nil) 
     { 
      let filePreview = fileUrl as QLPreviewItem 
      fileURLs.append(filePreview) 
     } 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    // MARK: - Preview controller datasource functions 

    func numberOfPreviewItems(in: QLPreviewController) -> Int { 
     return fileURLs.count 
    } 

    func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem { 
     return fileURLs[index] 
    } 

    // MARK: - Preview controller delegate functions 

    func previewControllerWillDismiss(_ controller: QLPreviewController) { 
     debug("previewControllerWillDismiss") 
    } 

    func previewController(_ controller: QLPreviewController, shouldOpen url: URL, for item: QLPreviewItem) -> Bool { 
     return true 
    } 
} 

我缺少什麼?

謝謝。

+0

你解決這個問題? –

+0

最好的事情可能是提交一個錯誤報告(bugreport.apple.com),以便他們可以檢查這是否是一個錯誤。 – Raffael

+0

塞巴斯蒂安羅斯 - 沒有仍然沒有工作。 – Kent

回答

0

我只是有這個問題,它僅僅是因爲我忘了把我的數據源上QLPreviewController ...