44 lines
1.6 KiB
Swift
44 lines
1.6 KiB
Swift
//
|
|
// PreviewViewController.swift
|
|
// MonsterPreview
|
|
//
|
|
// Created by Tom Hicks on 4/7/21.
|
|
//
|
|
|
|
import UIKit
|
|
import QuickLook
|
|
import SwiftUI
|
|
|
|
class PreviewViewController: UIViewController, QLPreviewingController {
|
|
|
|
func preparePreviewOfFile(at url: URL, completionHandler handler: @escaping (Error?) -> Void) {
|
|
|
|
let document = MonsterDocument(fileURL: url)
|
|
document.open(completionHandler: {[weak self](_) in
|
|
self?.presentMonsterViewController(for: document)
|
|
handler(nil)
|
|
})
|
|
}
|
|
|
|
func presentMonsterViewController(for document: MonsterDocument) {
|
|
let monsterViewModel = MonsterImportHelper.import5ESBMonster(document.monsterDTO ?? MonsterDTO())
|
|
let monsterViewController = UIHostingController(rootView: MonsterDetailView(viewModel: monsterViewModel))
|
|
monsterViewController.loadViewIfNeeded()
|
|
monsterViewController.view.layoutIfNeeded()
|
|
addChild(monsterViewController)
|
|
view.addSubview(monsterViewController.view)
|
|
monsterViewController.didMove(toParent: self)
|
|
|
|
if let monsterView = monsterViewController.view {
|
|
monsterView.translatesAutoresizingMaskIntoConstraints = false
|
|
NSLayoutConstraint.activate([
|
|
monsterView.leftAnchor.constraint(equalTo: view.leftAnchor),
|
|
monsterView.rightAnchor.constraint(equalTo: view.rightAnchor),
|
|
monsterView.topAnchor.constraint(equalTo: view.topAnchor),
|
|
monsterView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
|
|
])
|
|
}
|
|
}
|
|
|
|
}
|