我有一个UITabBarController
的子类。问题是:有没有一种方法可以检查用户是否选择了已选择的UITabBarItem
?
我已经尝试过didSet
和selectedIndex
的selectedViewController
以及不同的委托方法:
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController)
func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem)
但是只有当它是一个不同的选项卡时才调用它们(并且根本不调用selectedIndex
)
例如,如果我想将当前打开的控制器滚动到顶部,而不是当前打开的控制器,那么我就不想滚动它,我只想显示它(还有一些与动画有关的其他内容)。
谢谢
这里是一种可以帮助您的快速方法。
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
let currentIndex = tabBar.items?.firstIndex(of: item)
if selectedIndex == 0 && currentIndex == 0 {
// Do Something
} else if selectedIndex == 1 && currentIndex == 1 {
// Do Something
}
}