1

在我的 iOS 应用程序中,当我设置 setSelectedIndex 时,它不会调用以下函数

(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

有没有其他选择?

4

2 回答 2

0

UITabBarControllerDelegate 文档

tabBarController:didSelectViewController:

“[..] 它仅在标签栏中的用户点击时被调用,并且在您的代码以编程方式更改标签栏内容时不会被调用。”

因此,我建议您找到另一种方法来实现所需的功能。

一种选择是将您拥有的任何逻辑移动tabBarController:didSelectViewController:到视图控制器中的另一个方法中,并在委托方法(上方)和在您setSelectedIndex的 UITabBarController 实例上运行的代码中调用该方法。

于 2012-08-13T10:10:56.097 回答
0

如果您需要在选项卡更改时做出响应,无论它是否来自点击,我建议覆盖 setSelectedIndex:

-(void)setSelectedIndex:(NSUInteger)selectedIndex
{
    [super setSelectedIndex:selectedIndex];
    [self handleSelectionChanged];
}

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    [self handleSelectionChanged];
}

- (void)handleSelectionChanged
{
    // Do something
}
于 2017-08-31T02:18:41.017 回答