在我的iOS应用程序中,当我设置setSelectedIndex时,它不会调用 以下功能
(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
还有其他选择吗?
答案 0 :(得分:0)
来自UITabBarControllerDelegate documentation:
tabBarController:didSelectViewController:
“[..]仅在响应标签栏中的用户点击时调用它,并且当您的代码以编程方式更改标签栏内容时不会调用它。”
因此,我建议您找到另一种方法来实现所需的功能。
一种选择是将tabBarController:didSelectViewController:
中的任何逻辑移动到视图控制器中的另一个方法,并在委托方法(上面)和运行setSelectedIndex
的代码中调用该方法在你的UITabBarController实例上。
答案 1 :(得分:0)
如果您需要在标签更改时进行响应,无论它是否来自水龙头,我建议覆盖setSelectedIndex:
-(void)setSelectedIndex:(NSUInteger)selectedIndex
{
[super setSelectedIndex:selectedIndex];
[self handleSelectionChanged];
}
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
[self handleSelectionChanged];
}
- (void)handleSelectionChanged
{
// Do something
}