如何在iphone上获取切换选项卡菜单的事件

如何在iphone上获取切换选项卡菜单的事件,iphone,iphone-sdk-3.0,uitabbarcontroller,Iphone,Iphone Sdk 3.0,Uitabbarcontroller,我试图找出如何捕获控制屏幕上开关选项卡的事件 UITabBarController。我怎样才能做到这一点 查看UITabBarControllerDelegate中的以下方法: - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 告诉代理用户 在选项卡栏中选择了一个项目 UITabBarControll

我试图找出如何捕获控制屏幕上开关选项卡的事件
UITabBarController
。我怎样才能做到这一点

查看UITabBarControllerDelegate中的以下方法:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
告诉代理用户 在选项卡栏中选择了一个项目


UITabBarControllerDelegate
是您正在寻找的,特别是-
tabBarController:didSelectViewController:

实现
UITabBarControllerDelegate
例如在您的应用程序代理的
applicationdifinishLaunching

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    tabBarController.delegate = self;
    [window addSubview:tabBarController.view];
}
然后执行以下任一操作:

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

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
第一个方法在视图切换之前调用,通过返回
NO


第二种方法在视图切换发生后调用

如果您使用的是情节提要,请执行此操作

在didFinishLaunchingWithOptions中

UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController;
[tabBar setDelegate:self];
同样在AppDelegate中,保留

然后

-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
   //Write your code here
}

迟做总比不做好。在swift 4的情况下,您可以按照以下方式进行操作

tabBarViewController.delegate = self
并在类中实现
uitabardelegate
。 你会收到回电的

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
  //Stuff to do
}