Swift:点击标签栏时解除模态显示的视图控制器

时间:2018-01-03 04:31:15

标签: ios swift uitabbar

我有一个带有子类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)
    }
}

如果我点击视图外的背景,模态呈现的视图控制器将按预期解除。但是,如果我点击我的标签栏,它就不会像预期的那样被解雇。

此外,如果我的模态视图控制器没有被解雇,我使用我的标签栏转到另一个视图控制器,当我回到我的第一个标签时,我接受了模态视图控制器的欢迎黑色背景(换句话说,当我在这种情况下解雇模态视图控制器时,剩下的只是一个黑色空白和标签栏控制器。然后我被迫选择另一个标签,然后再次选择第一个标签为了解决它。)

有关如何解决此问题的任何想法/避免此行为?我想知道是否有一种方式可以让我采用模态呈现的方式来选择&#34;选择&#34;在我的标签栏上点击它可以解雇自己(或者如果有另一种更好的方法),但在搜索了一段时间之后我还没有找到任何解决方案。

1 个答案:

答案 0 :(得分:1)

用于解除模态显示的viewController,

您可以在Tabbar按钮项

上添加操作

然后只使用,

self.dismiss(animated: true, completion: nil)