我在故事板中创建了一个新的视图控制器。将它连接到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