很多时候我们的程序操作结构都是UITabBarController+UINavigationController,每个UITabBarController item里面都有很多层的UINavigationController,而UITabBarController默认有一个事件就是双击UITabBarController item时,会把这个item里的UINavigationController pop 到root,而我们有时不希望一下子就pop到了根视图,因为可能还会有一些逐层处理功能需要完成。这个时候如果想屏闭掉这个双击事件只留下单击切换标签事件的话,就可以参考下面的方法重写UITabBarController的代理:
- #pragma mark -
- #pragma mark UITabBarControllerDelegate
- - (BOOL)tabBarController:(UITabBarController *)tbc shouldSelectViewController:(UIViewController *)vc {
- UIViewController *tbSelectedController = tbc.selectedViewController;
- if ([tbSelectedController isEqual:vc]) {
- return NO;
- }
- return YES;
- }