Files
MonsterCards/iOS/MonsterPreview/PreviewViewController.swift
Tom Hicks 48f71d1a3a Add 'iOS/' from commit '938f0fb75860d3637b998bdd0c27dcffd9fc9451'
git-subtree-dir: iOS
git-subtree-mainline: c4bb775af4
git-subtree-split: 938f0fb758
2025-06-30 12:55:22 -07:00

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),
])
}
}
}