gpt4 book ai didi

iphone - 禁用操作 - 用户点击选项卡栏项目以转到 Root View Controller

转载 作者:行者123 更新时间:2023-12-03 18:20:51 25 4
gpt4 key购买 nike

我想禁用用户点击选项卡栏项目时的默认操作。

例如,我有一个带有 Tab1、Tab2 和 Tab3 的选项卡栏。在 Tab1 中,用户可以从 View1 导航到 View3(View1 > View2 > View3)。如果用户位于 View3,并且点击 Tab1,应用程序会将用户带到 View1( Root View Controller )。我想禁用此功能。我不希望点击 Tab1 来弹出所有 View Controller 。我怎样才能做到这一点?

编辑:

这种行为有点奇怪,但在层次结构很深的情况下,这是一个方便的捷径!

您可以实现以下 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;
}

最佳答案

如果你查看 UITabBarController 委托(delegate),就会发现有一个方法:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

如果你在你的类中实现这个,你可以检查 UIViewController 是否是已经显示的,然后返回 NO,这将阻止这种情况发生。

我对嵌入 UITabBarController 中的 ABPeoplePicker 对象遇到了同样的问题,因为第二次按已显示的“联系人”选项卡将使 ABPeoplePicker 控件显示“组”

关于iphone - 禁用操作 - 用户点击选项卡栏项目以转到 Root View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4191504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com