选择哪个标签控制器?

时间:2011-05-30 11:01:06

标签: ios objective-c cocoa-touch uitabbarcontroller

我有一个带五个按钮的标签栏控制器。该控制器有一个标签视图控制器。

选项卡视图控制器的行为应根据所按的选项卡而有所不同。

例如,如果选项卡是“位置”,则应根据位置对显示的数据进行排序。如果选项卡是“字母”,则应根据字母对视图进行排序。

我在视图控制器中有这段代码

-(void)viewWillAppear:(BOOL)animated
{
    [super viewDidLoad];
    [BNUtilitiesQuick parseXMLFileAtURL:@"http://example.com/BusinessSerialized.xml"];
    [BNUtilitiesQuick UtilitiesQuick].BizsToDisplay = [BNUtilitiesQuick searchObjectsInContext:@"Business" :nil :@"Title" :YES];
    NSLog(@"%@",[self tabBarController]);
    if ([[self tabBarController]selectedIndex]==0)
    {
    }
    NSLog(@"%d",[[self tabBarController] selectedIndex]);

    // Do any additional setup after loading the view from its nib.
}

除了一个问题,[[self tabBarController] selectedIndex]有效。它不是给出当前选择的索引,而是先前的索引。

说我现在正在选择标签0,然后点击标签4; NSLog()将显示0。

我该如何解决这个问题?我想知道被按下的标签。

1 个答案:

答案 0 :(得分:2)

通过使用此委托方法,您将获得所选索引:

# enter code here
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    NSLog(@"sff %d",tabBarController.selectedIndex);
}