我在故事板中創建了一個新的視圖控制器。將它連接到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) -> QLPreviewItem
和func 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
}
}
我缺少什麼?
謝謝。
你解決這個問題? –
最好的事情可能是提交一個錯誤報告(bugreport.apple.com),以便他們可以檢查這是否是一個錯誤。 – Raffael
塞巴斯蒂安羅斯 - 沒有仍然沒有工作。 – Kent