As what the title suggests, I would like to be able to lock all my tab bars except for one. And only after the user completes an action will I enable all the rest of the tab bars. How can I do that?
问问题
7981 次
3 回答
15
我还没有尝试过,但是根据文档,您可以从代表处返回 NO tabBarController:shouldSelectViewController:
。
[更新]我只是出于好奇而尝试过-它似乎工作正常。从“标签栏应用程序”模板创建一个新项目,然后转到-viewDidLoad
您的 FirstViewController。添加这一行:
[self.tabBarController setDelegate:self];
然后实现委托方法:
-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
if (userHasCompletedAction) {
return YES;
}
return NO;
}
不要忘记遵守<UITabBarControllerDelegate>
您的 .h 文件!
希望有帮助。
于 2011-08-12T09:14:37.407 回答
4
你必须实现这个方法
- (void)tabBarController:(UITabBarController *)tabBarController1 didSelectViewController:(UIViewController *)viewController {
if ([tabBarController1 selectedIndex]==0) {
UITabBarItem *tabBarItem = [[[[self tabBarController]tabBar]items] objectAtIndex:1];
[tabBarItem setEnabled:FALSE];
}
}
您必须执行类似的操作才能禁用所需的标签栏项目。
于 2011-08-12T09:17:47.607 回答
0
tabBar:didSelectItem:
中的方法UITabBarDelegate
可能会有所帮助。
于 2011-08-12T09:13:25.560 回答