我在我的app委托中实现了以下内容,并尝试检查所选索引。我发现的是,此值是单击新选项卡时的选项卡,而不是新选项卡。有没有办法找到选择了哪个标签?
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
int *i = tabBarController.selectedIndex;
}
答案 0 :(得分:3)
如果我没记错,您可以使用
获取所选标签的索引- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
NSUInteger selectedIndex = [tabBarController.viewControllers indexOfObject:viewController];
// ...
return YES or NO;
}
答案 1 :(得分:0)
您想使用tabBarController:didSelectViewController:
委托方法。选择选项卡后调用。
您的int *i
实际应该是int i
或更好,NSUInteger i
。
答案 2 :(得分:0)
Swift版本:
- (void)viewWillAppear:(BOOL)animated
{
[[[[self.tabBarController tabBar]items]objectAtIndex:0]setEnabled:FALSE];
[[[[self.tabBarController tabBar]items]objectAtIndex:1]setEnabled:FALSE];
}
- (void)viewDidAppear:(BOOL)animated
{
[[[[self.tabBarController tabBar]items]objectAtIndex:0]setEnabled:FALSE];
[[[[self.tabBarController tabBar]items]objectAtIndex:1]setEnabled:FALSE];
}