私はストーリーボードに新しいView Controllerを作成しました。それをListViewControllerに接続しました。 ListViewControllerは、正しいデータをaboutDict[String:Any]
に入力します。 fileURLs[]
が構築され、func numberOfPreviewItems(in: QLPreviewController) -> Int
が呼び出される - デバッガはfileURLs[]
は次のように期待されて示していますself.fileURLsのpreviewController previewItemAtが呼び出されていません。 iOS 10、swift 3、simulator
印刷の説明:▿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と、「プレビューするファイルがありません」というテキストを中心とするグレーのページが表示されます。
「戻る」ボタンを押すと、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
sebastian-roth - まだ動作しません。 – Kent