如何以编程方式设置UITabBarController的选定选项卡,同时还在UITabBarControllerDelegate中触发shouldSelectViewController

her*_*tim 24 cocoa-touch uitabbarcontroller ios

我试图在我的UITabBarController中的选项卡之间转换动画,当我按下选项卡按钮时工作正常.但是,当我通过调用以编程方式切换选项卡时

[self.tabBarController setSelectedIndex:2];
Run Code Online (Sandbox Code Playgroud)

在滑动手势识别器中,我的UITabBarControllerDelegate委托中没有调用shouldSelectViewController函数,因此我的动画没有被触发.

有没有办法实现我想要的?我可以以不同的方式以不同的方式触发Tab键切换,以便调用shouldSelectViewController函数吗?

Kap*_*isa 46

如果已- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController在tabBarController的委托中实现,则可以手动调用它.

[self.tabBarController.delegate tabBarController:self.tabBarController shouldSelectViewController:[[tabBar viewControllers] objectAtIndex:2]];
[self.tabBarController setSelectedIndex:2];
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 不,代表方法不适合手动调用!如果发生某事,应该调用该方法.使用你的解决方案,我可以在` - (BOOL)tabBarController中输入`return NO`:shouldSelectViewController:`和控制器仍然会被选中. (11认同)