首页 > 解决方案 > 在 pushViewController 之后 ViewController 未显示在屏幕上,但它存在于 UI-Debugger 中

问题描述

获得 AppLink 后,我将 VC 推送到navigationController上。ViewController 不会出现在屏幕上,并且应用程序被冻结(未崩溃)。但是如果我打开 UI-Debugger,VC 就在那里。

我试图在Main上执行链接,它使问题很少见,但有时仍然可以重现。

DispatchQueue.main.async {
    navController?.pluginNavigationController.pushViewController(viewController, animated: true)
}

任何想法?

标签: iosswiftuinavigationcontrollerpushviewcontroller

解决方案


这对许多人来说可能无关紧要,但可能会对某人有所帮助。

就我而言,ViewController 正在实施UIGestureRecognizerDelegate,我true

gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool

即使 NavigationStack 上有 1 个 ViewController。这导致应用程序冻结(实际上当我下次尝试使用动画 pushViewController 时,UI 永远卡在动画中)。

(除了我的其他检查)在方法结束时添加以下检查解决了这个问题。

return navigationController.viewControllers.count > 1

推荐阅读