我有一个带有子类UITabBarController的选项卡式应用程序。我的第一个视图控制器能够以模式呈现另一个视图控制器。
我的模式化视图控制器应该在其内容之外的任何内容被点击时自动关闭。责任代码如下:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch : UITouch? = touches.first
if (touch?.view != contentView){
self.dismiss(animated: true, completion: nil)
}
}
如果我点击视图外部的背景,则模式显示的视图控制器将按预期解除。但是,如果我点击我的标签栏,它不会像预期的那样消失。
此外,如果我的模式视图控制器没有被解除,我使用我的选项卡栏转到另一个视图控制器,当我回到我的第一个选项卡时,我的模式视图控制器会出现在黑色背景上(换句话说,在这种情况下,当我解除模式视图控制器时,剩下的就是一个黑色的空白和标签栏控制器。然后我被迫选择另一个选项卡,然后再次选择第一个选项卡以修复它)。
关于如何解决/避免这种行为有什么想法吗?我想知道,也许有一种方法可以让我的模式视图在我的标签栏上被点击,这样它就可以自己消失(或者如果有另一种更好的方法),但在搜索了一段时间后,我还没有找到任何解决方案。
最佳答案
对于解除模式显示的viewController,
可以在选项卡栏按钮项上添加操作,
然后就用,
self.dismiss(animated: true, completion: nil)
关于ios - Swift:轻按Tab栏时关闭模态呈现的 View Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48071189/