Hi everyone,
I’m trying to customise look of the QLPreviewController
.
Problem is it’s not default look of it, because global appearance of UINavigationBar
, UIBarButtonItem
, UITabBar
are changed in app delegate.
To change tint color of navigation bar I subclassed QLPreviewController
and in viewDidLoad()
did this:
self.navigationController?.navigationBar.tintColor = nil
It comes back to default blue color. This is how it looks right now and what I would like to change.
I tried to change barTintColor same as I changed back button tint color but it didn’t worked.
This is how I’m opening QLPreviewController
viewController.pushViewController(self, animated: true)
import Foundation
import QuickLook
class DocumentPreviewer: QLPreviewController, QLPreviewControllerDataSource, QLPreviewControllerDelegate {
var fileURL: URL?
override func viewDidLoad() {
self.navigationController?.navigationBar.tintColor = nil
}
func openDocument(vc: UIViewController, document: Document?) {
guard let document = document else {
print("Cannot open document because it's nil")
return
}
if let navController = vc.navigationController {
navController.pushViewController(self, animated: true)
} else {
vc.show(self, sender: nil)
}
API.sharedInstance.fetchDocument(document) { (saved) in
DispatchQueue.main.async(execute: {
guard let url = saved else {
print("File url is not valid")
return
}
if QLPreviewController.canPreview(url as QLPreviewItem) {
self.currentPreviewItemIndex = 0
self.fileURL = url
self.dataSource = self
self.delegate = self
self.reloadData()
} else {
makeDefaultAlert(self, title: "Not supported", msg: "File is not supported for preview")
print("Item not supported by QLPreviewController")
}
})
}
}
func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
return 1
}
func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
return fileURL as! QLPreviewItem
}
}
And this is how I’m calling it
let docpreview = DocumentPreviewer()
docpreview.openDocument(vc: self, document: document)
Thanks for help,
Najdan