how to get the event that switch tab menu on iphone

后端 未结 5 2303
星月不相逢
星月不相逢 2020-12-03 17:03

I\'m trying to figure out how to catch the event that controls the switch tabs on the UITabBarController. How could I accomplish this?

相关标签:
5条回答
  • 2020-12-03 17:18

    Is UITabBarControllerDelegate what you're looking for, particularly -tabBarController:didSelectViewController:?

    0 讨论(0)
  • 2020-12-03 17:22

    Better late than never. In case of swift 4 you can do it in the following way.

    tabBarViewController.delegate = self
    

    And implement UITabBarDelegate in your class. You will get the callback in

    override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
      //Stuff to do
    }
    
    0 讨论(0)
  • 2020-12-03 17:26

    Have a look at the following method in UITabBarControllerDelegate:

    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
    

    Tells the delegate that the user selected an item in the tab bar.

    0 讨论(0)
  • 2020-12-03 17:28

    If you are using storyboard, do this

    in didFinishLaunchingWithOptions

    UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController;
    [tabBar setDelegate:self];
    

    Also in AppDelegate, keep <UITabBarControllerDelegate>

    And then

    -(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
    {
       //Write your code here
    }
    
    0 讨论(0)
  • 2020-12-03 17:36

    Implement UITabBarControllerDelegate e.g. in your app delegate's applicationDidFinishLaunching

    - (void)applicationDidFinishLaunching:(UIApplication *)application
    {
        tabBarController.delegate = self;
        [window addSubview:tabBarController.view];
    }
    

    Then implement either:

    - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController;
    
    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
    

    The first method is called before the view switch and gives you a chance to 'veto' the view switch by returning NO

    The second method is called after the view switch has taken place

    0 讨论(0)
提交回复
热议问题