当单击 UITableView
单元格时,弹出菜单会从底部出现,并带有动画并覆盖选项卡栏。
我想在单击单元格并出现弹出菜单时阻止选项卡栏项目的单击事件。
所以我制作了一个自定义的UITabBarController
,它符合UITabBarContorllerDeleagte
,如下所示
// CustomTabBarController.swift
class CustomTabBarController: UITabBarController, UITabBarControllerDelegate {
var enabled = true
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
return enabled
}
}
实例属性 enabled
在单击表格单元格时设置为 false,在弹出菜单消失时设置为 true。
问题是,当我非常快速地依次单击单元格和选项卡栏时,会出现弹出菜单并且选项卡也会更改。我认为标签栏项目单击事件是在变量 enabled
更改之前执行的。
使用 UITabBarController
的 isUserInteractionEnabled
并禁用每个选项卡栏项目具有相同的结果。我该如何解决这个问题?
最佳答案
单击单元格时,可以设置tabBarController?.tabBar.isUserInteractionEnabled = false
。
在弹出窗口的完成处理程序中,关闭后,设置 tabBarController?.tabBar.isUserInteractionEnabled = true
关于ios - 尽快禁用选项卡栏项目单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48970940/