很多時候我們的程序操作結構都是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;
}
參考文章:http://stackoverflow.com/questions/1849975/prevent-automatic-poptorootviewcontroller-on-double-tap-of-uitabbarcontroller