web-dev-qa-db-ja.com

UITabBarControllerDelegateでshouldSelectViewControllerをトリガーしながらUITabBarControllerの選択したタブをプログラムで設定するにはどうすればよいですか

私はUITabBarControllerのタブ間の遷移をアニメーション化しようとしています。これは、タブボタンを押すと正常に機能します。ただし、プログラムでタブを切り替えると、

[self.tabBarController setSelectedIndex:2];

スワイプジェスチャレコグナイザで、shouldSelectViewController関数がUITabBarControllerDelegateデリゲートで呼び出されていないため、アニメーションがトリガーされていません。

私が望むことを達成する方法はありますか?プログラムでタブスイッチを別の方法でトリガーして、shouldSelectViewController関数が呼び出されるようにすることはできますか?

24
herrtim

TabBarControllerのデリゲートに- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewControllerを実装している場合は、手動で呼び出すことができます。

[self.tabBarController.delegate tabBarController:self.tabBarController shouldSelectViewController:[[tabBar viewControllers] objectAtIndex:2]];
[self.tabBarController setSelectedIndex:2];

お役に立てれば。

46
Kapil Choubisa