选项卡栏 select 委托方法在 ios、swift 3 中提供了先前 selected 的选项卡索引

tab bar did select delegate methods give the previously selected tab index in ios, swift 3

我正在尝试实时检测用户 select 编辑了哪个选项卡。例如,如果用户 selecte 0 th 索引,同时我想让该用户 select 编辑了 zeroth 索引选项卡。所以为此,我使用了 tabbarcontroller 委托方法,如下所示。

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {

        print("the selected index is : \(selectedIndex)")
    }

但这显示了以前的视图 controller.as 一个例子认为我在 second tab 然后我 select first tab 然后这将索引打印为 2.那么我怎样才能得到正确的 selected 选项卡。 希望您对此有所帮助。

您可以通过从 UITabBar 中的项目数组中获取特定项目的位置来获取所选 UITabBarItem 的索引。试试这个

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
    print("the selected index is : \(tabBar.items.index(of: item))")
}

Swift 3.1:

 override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
     guard let items = tabBar.items else { return }
     print("the selected index is : \(String(describing: items.index(of: item)))")
}