ios - Swift:点击标签栏时关闭模态呈现的 View Controller

标签 ios swift uitabbar

我有一个带子类的 UITabBarController 的选项卡式应用程序。我的第一个 View Controller 能够以模态方式呈现另一个 View Controller 。

当点击其内容之外的任何内容时,我的模态呈现 View Controller 应该自行关闭。负责的代码如下:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    let touch : UITouch? = touches.first
    if (touch?.view != contentView){
        self.dismiss(animated: true, completion: nil)
    }
}

如果我点击 View 外的背景,模态呈现的 View Controller 会按预期消失。但是,如果我点击我的标签栏,它不会按预期关闭。

此外,如果我的模态视图 Controller 没有被关闭并且我使用我的标签栏转到另一个 View Controller ,当我返回到我的第一个选项卡时,我会在黑色背景上看到我的模态视图 Controller (换句话说,当我在这种情况下关闭模态视图 Controller 时,剩下的就是黑色空隙和选项卡栏 Controller 。然后我被迫选择另一个选项卡,然后再次选择第一个选项卡以修复它) .

关于如何解决此问题/避免此行为的任何想法?我想知道是否有一种方法可以让我的模态呈现 View 在我的选项卡栏上“拾取”被点击以便它可以自行关闭(或者如果有另一种更好的方法),但是在搜索虽然我还没有找到任何解决方案。

最佳答案

为了关闭模态呈现的 viewController,

您可以在 Tabbar 按钮项上添加一个操作,

然后就使用,

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

关于ios - Swift:点击标签栏时关闭模态呈现的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48071189/

相关文章:

ios - 为什么 Atom 提要不再更新我的 iOS 报亭封面?

ios - 如何在 CoreData 中保存位置

ios - UIView 可以在初始化后加载另一个 Nib 吗?

ios - UITabBar如何设置圆角和阴影?

ios - 如何摆脱UITabBar中第一个和最后一个项目之前和之后的空间?

ios - iOS 游戏中的 Facebook 分享和点赞

iOS 游戏本地化与 lproj 目录不起作用

ios - 应用程序首选项 : root=NOTIFICATIONS_ID Not working on iOS 11 Swift 4

ios - 设置对象或调用函数 EXC_BAD_ACCESS 时出错(代码=257)

ios - Swift 3 - 用于 selectionIndicatorImage 的 UITabBarItem 的全宽