每次从标签栏按下标签时,如何执行方法?

时间:2011-11-30 19:39:07

标签: iphone objective-c ios delegates tabbar

每次在我的应用中按下标签栏中的标签时,我想运行一个方法。我该怎么做呢?我的故事板中有一个标签栏控制器(在我创建项目时选择标签栏应用程序时构建)。

例如,我想在每次按下标签按钮时将“标签”按钮打印到控制台。

我尝试在app委托中添加此内容,但没有任何运气:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{

    NSLog(@"Tab Button Pressed");

}

这可能很简单,但我遗漏了一些东西。

2 个答案:

答案 0 :(得分:2)

您是否已将视图控制器设置为标签栏的代理?

答案 1 :(得分:1)

如果您使用的是xcode 4.2.x,则模板会在UITabBarController

的代码中设置appDelegate
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.delegate = self;    //<---- Add this line
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
self.window.rootViewController = self.tabBarController;

如果您有旧样式项目或使用界面构建器构建您的结构,那么:

  1. 右键单击对象视图中的Tab bar controller
  2. 找到delegate商店
  3. delegate插座连接到File's Owner
  4. enter image description here enter image description here