我有一个嵌入在UITabBarController
中的视图控制器。在其中一个UIViewControllers
中,我有一个调用弹出视图控制器(pVC)的按钮。 pVC通过UISegue
模式连接到视图控制器,其显示样式设置为overCurrentContext
。
工作正常。但是,我注意到当pVC显示并且我通过标签栏将视图控制器切换到另一个时,然后回到带有弹出窗口的那个,弹出窗口仍然存在,但背景为黑色。它看起来像这样:
我想,这是因为弹出窗口下方的视图已从视图层次结构中删除。在view hierarchy debugger
中,我看到我的整个视图控制器被删除(而不仅仅是其子视图)。问题是,我不明白为什么当我返回到那个视图控制器时会发生这种情况(标签栏不是那样工作的?),以及为什么弹出窗口仍然存在(可能因为它不仅仅是一个视图,而是一个UIViewController
)。我也想知道如何解决这个问题。
如果您能解释为什么会发生这种情况(背后会发生什么),以及如何解决这个问题,我将非常感谢您的帮助。
答案 0 :(得分:0)
如果用户可以选择触摸
,请执行此操作 // UITabBarControllerDelegate
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
print("Selected view controller")
self.dismiss(animated: true, completion: nil)
}
如果手动
,则为此 self.tabBarController?.selectedIndex = 0
self.tabBarController(self.tabBarController!, didSelect: self)
任何选项实现 UITabBarControllerDelegate
答案 1 :(得分:0)
将此代码放入popupVC:
tabBarController.tabBar.isUserInteractionEnabled = false