ユーザーがタブバーアイテムをタップしたときのデフォルトのアクションを無効にしたい。
たとえば、Tab1、Tab2、Tab3のタブバーがあります。Tab1では、ユーザーはView1からView3に移動できます(View1> View2> View3)。ユーザーがView3にいて、Tab1をタップすると、アプリケーションはユーザーをView1(ルートビューコントローラー)に移動します。この機能を無効にしたい。Tab1をタップしてすべてのViewControllerをポップしたくありません。どうやってやるの?
編集:
この動作は少し奇妙ですが、階層が深い場合に便利なショートカットです。
次の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;
}