PreviewManager.swift
1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//
// PreviewManager.swift
// FileBrowser
//
// Created by Roy Marmelstein on 16/02/2016.
// Copyright © 2016 Roy Marmelstein. All rights reserved.
//
import Foundation
import QuickLook
class PreviewManager: NSObject, QLPreviewControllerDataSource {
var filePath: URL?
func previewViewControllerForFile(_ file: FBFile, fromNavigation: Bool) -> UIViewController {
if file.type == .PLIST || file.type == .JSON{
let webviewPreviewViewContoller = WebviewPreviewViewContoller(nibName: "WebviewPreviewViewContoller", bundle: Bundle(for: WebviewPreviewViewContoller.self))
webviewPreviewViewContoller.file = file
return webviewPreviewViewContoller
}
else {
let previewTransitionViewController = PreviewTransitionViewController(nibName: "PreviewTransitionViewController", bundle: Bundle(for: PreviewTransitionViewController.self))
previewTransitionViewController.quickLookPreviewController.dataSource = self
self.filePath = file.filePath as URL
if fromNavigation == true {
return previewTransitionViewController.quickLookPreviewController
}
return previewTransitionViewController
}
}
func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
return 1
}
func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
let item = PreviewItem()
if let filePath = filePath {
item.filePath = filePath
}
return item
}
}
class PreviewItem: NSObject, QLPreviewItem {
/*!
* @abstract The URL of the item to preview.
* @discussion The URL must be a file URL.
*/
var filePath: URL?
public var previewItemURL: URL? {
if let filePath = filePath {
return filePath
}
return nil
}
}