当用户点击标签栏项目时,我想禁用默认操作。
例如,我有一个带有 Tab1、Tab2 和 Tab3 的标签栏。在 Tab1 中,用户可以从 View1 导航到 View3(View1 > View2 > View3)。如果用户在 View3,并且他点击 Tab1,应用程序会将用户带到 View1(根视图控制器)。我想禁用此功能。我不希望 Tab1 上的点击弹出所有视图控制器。我怎样才能做到这一点?
编辑:
这种行为有点奇怪,但在层次结构较深的情况下是一个方便的捷径!
您可以实现以下 UITabBarControllerDelegate 方法来禁用此系统范围的快捷方式:
#pragma mark -
#pragma mark UITabBarControllerDelegate
- (BOOL)tabBarController:(UITabBarController *)tbc shouldSelectViewController:(UIViewController *)vc {
UIViewController *tbSelectedController = tbc.selectedViewController;
if ([tbSelectedController isEqual:vc]) {
return NO;
}
return YES;
}