从呈现的View Controller中停止调整QLPreviewController的大小

问题描述 投票:0回答:1

我正在iPad应用程序中将NavigationViewController呈现为formSheet,效果很好。但是在这个展示的NavigationViewController中,当我用一个Image推送QLPreviewController来显示它时,它会自动调整其大小以适合Image。仅此一项就不成问题,但是返回到先前的QControllerQLPreviewController形式的viewController时,调整后的viewController大小会影响该NavgationViewController中的所有ViewController。

如果有任何方法可以从QLPreviewController返回到viewController的默认大小,它也会有所帮助。或者,如果QLPreviewController在按下时未调整大小。

而且此问题仅在iOS 13+中。

任何帮助将不胜感激。

ios swift ipad qlpreviewcontroller
1个回答
0
投票

最后,我自己解决了。

创建一个变量

var defaultPreferredContentSize: CGSize?

和一种方法

fileprivate func adjustViewControllerSizeIfNeeded() {
    if let size = defaultPreferredContentSize {
        if self.navigationController?.preferredContentSize != size {
            self.navigationController?.preferredContentSize = size
        }
    } else {
        defaultPreferredContentSize = self.view.frame.size
    }
}

在viewDidAppear中调用此方法

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    adjustViewControllerSizeIfNeeded()
}
© www.soinside.com 2019 - 2024. All rights reserved.