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