确定UITabBar项所属的UIViewController子类

时间:2010-09-16 12:03:02

标签: iphone uitabbarcontroller uitabbar uitabbaritem

我的appDelegate中有一个UITabBarController,但我需要一种方法来了解用户何时按下不同的标签栏项目(标签栏上的按钮)。

-UITabBarDelegate救援协议(使用所需的didSelectViewController方法)!

在Interface Builder中连接所有内容后,如何获取对应于此按钮的标签栏项的实际UIViewController子类实例的引用?

我需要这个引用,因为每次按下标签栏项时我都需要在我的一个UIViewControllers子类中调用一个方法。

有什么建议吗?

- (void)tabBarController:(UITabBarController *)theTabBarController didSelectViewController:(UIViewController *)viewController
{   
    NSLog(@"%@", [[self.tabBarController selectedViewController] nibName]); // nil, no success here     

    if ([theTabBarController selectedIndex] == 1) {         
        MySecondViewController *reference = (MySecondViewController *) viewController;      

    if ([reference isKindOfClass:[UINavigationController class]]) {
        NSLog(@"OMG. It's a UINavigationController class??!"); // kicks in for some reason, shouldn't reference be a MySecondViewController
    }   
}

1 个答案:

答案 0 :(得分:0)

可能我没有正确理解你的问题,但似乎你要求的只是“viewController”参数,它被传递给你提到的方法调用

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

UITabBarController还有一个属性来获取相同的信息

@property(nonatomic, assign) UIViewController *selectedViewController