双击UITabBarControllers选项卡转到导航控制器的根目录

我有一个UITabBarController设置与2 UINavigationControllers。

一个UINavigationController有一个UIViewController,另一个UINavigationController有两个UIViewControllers。 然后,如果您导航到第二个UIViewController并单击已选中的选项卡,则会将您带到UINavigationController的根目录(这将是第一个UIViewController)。

有没有办法阻止这种情况发生? 我不希望用户能够单击已选择的选项卡以转到导航控制器的根目录。

为此,您需要在app delegate中实现一个函数来获取tabbar委托调用。

在你的app delegate.m文件中,在didfinishlaunching方法中,添加这一行

[tabBarController setDelegate:self]; 

然后实现此方法(也在您的应用程序委托中):

 - (BOOL)tabBarController:(UITabBarController *)theTabBarController shouldSelectViewController:(UIViewController *)viewController { return (theTabBarController.selectedViewController != viewController); } 

这将作为选项卡委托协议的一部分进行调用,如果选项卡已经选中,则将停止选择选项卡。

希望有所帮助。