我有一个带五个按钮的标签栏控制器。该控制器有一个标签视图控制器。
选项卡视图控制器的行为应根据所按的选项卡而有所不同。
例如,如果选项卡是“位置”,则应根据位置对显示的数据进行排序。如果选项卡是“字母”,则应根据字母对视图进行排序。
我在视图控制器中有这段代码
-(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。
我该如何解决这个问题?我想知道被按下的标签。
答案 0 :(得分:2)
通过使用此委托方法,您将获得所选索引:
# enter code here
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
NSLog(@"sff %d",tabBarController.selectedIndex);
}