Detect when a tab bar item is pressed

前端 未结 6 942
灰色年华
灰色年华 2020-11-28 07:37

I have a root view controller which isn’t set as the custom class for any of my view controllers on my storyboard. Instead, all of my view controllers are subclassing this c

6条回答
  •  Happy的楠姐
    2020-11-28 08:02

    Swift 5 Easy way Enjoy

    //MARK:- it will work in 
    class TabBar: UITabBarController, UITabBarControllerDelegate {
    
    }
    

    Code

    override func viewDidLoad() {
        super.viewDidLoad()
    
        self.selectedIndex = 1
        self.title = "Measure"
    
        self.delegate = self        
    }
    
    //MARK:-  UITabBarDelegate
    override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
        print("Selected item")
    }
    
    //MARK:- UITabBarControllerDelegate
    func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
        let selectedIndex = tabBarController.viewControllers?.firstIndex(of: viewController)!
        if selectedIndex == 0 {
            self.title = "History"
        }
        else if selectedIndex == 1{
            self.title = "Measure"
        }
        else if selectedIndex == 2 {
            self.title = "Setting"
        } else {
            //do whatever
        }
    }
    

提交回复
热议问题