首页 > 解决方案 > 新出现的视图控制器在出现后立即被解散?

问题描述

我有一个视图控制器,它调用另一个视图控制器present(newViewController...。但是,每当调用此当前函数的函数时,新的视图控制器都会在屏幕上弹出一秒钟,然后再次关闭。这个新的视图控制器中没有任何函数可以自行关闭。

我能想到的唯一可能导致这种情况的是我对 SnapKit 的使用和覆盖viewDidLayoutSubviews

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        if let data = data {
            return
        } else { setupAVFoundation() }
    }

data是一个可选值,在我展示新视图控制器时设置,因此viewDidLayoutSubviewsif let语句处返回。但是我已经确认,在展示新的视图控制器时,viewDidLayoutSubviews会被调用四次。我无法弄清楚为什么会发生这种情况,或者为什么它会中断新视图控制器的呈现。

以下是新视图的展示位置:

    func found(code: String) {
        print(code)
        data = code
        present(ItemSelectViewController(), animated: true, completion: nil)
    }

标签: iosswiftuikit

解决方案


推荐阅读