我正在使用以下命令切换标签栏
self.tabbarcontroller.selectedIndex=0;
这是工作,但如果我正在推另一个视图控制器然后没有发生标签栏的切换,但如果我手动选择第一个视图控制器,那么我可以看到推动视图控制器在那里。
但是为什么只有当另一个视图控制器被推到顶部时才会发生切换。
仅供参考:我在顶视图控制器顶部推动视图控制器的方式没有问题,因为我尝试注释代码以切换标签栏项目并将其推送没有任何问题。
任何帮助表示赞赏。
--
更新:
这是推送视图控制器的代码
- (UINavigationController*) rootNavigationController {
UITabBarController* tabBarController = (UITabBarController*) [[self window] rootViewController];
return (UINavigationController*) [tabBarController selectedViewController];
}
[rootNavigationController pushViewController:newViewController animated:true];
我之前有时会遇到同样的问题。索引正在以某种方式改变。要处理这种情况,最好使用didSelectItem委托并将当前项存储为导航控制器。所以不需要使用[tabBarController selectedViewController]。参考:UITabBar(Controller) - Get index of tapped?