Xcode 故事板选项卡式应用程序 (UITabBarController) - 告诉选项卡何时被选中

Xcode Storyboard Tabbed application (UITabBarController) - tell when tab selected

使用 Xcode 6 我使用故事板和提供的模板创建了一个选项卡式应用程序。

我需要一个在选择 UITabBarController 的第三个选项卡时触发的函数。

我不能使用 ViewDidLoad,因为我需要在每次通过单击选项卡访问视图时触发它(不仅仅是第一次(而且我不能使用 ViewWillAppear,因为当视图是通过选项卡访问,而不是从后续(模态)视图控制器返回。

如有任何建议,我们将不胜感激。非常感谢。

在某些 UIViewController 上实现 UITabBarControllerDelegate 的委托方法 class

- (void)tabBarController:(UITabBarController *)theTabBarController didSelectViewController:(UIViewController *)viewController {
NSUInteger indexOfTab = [theTabBarController.viewControllers indexOfObject:viewController];
// Your code here
    }

您可以子class UITabBarController 并覆盖以下方法。

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
NSUInteger indexOfTab = [[theTabBar items] indexOfObject:item];
// Your code here}