我正在使用以下命令切换选项卡栏
self.tabbarcontroller.selectedIndex=0;
这是可行的,但是如果我按另一个视图控制器,则选项卡栏的切换不会发生,但是,如果我手动选择第一个视图控制器,则可以看到被推的视图控制器在那里。
但是为什么只有在将另一个ViewController推到顶部时才发生切换?
仅供参考: 我将视图控制器推到顶部视图控制器顶部的方式没有问题,因为我尝试注释掉用于切换选项卡栏项目的代码,并且没有任何问题地将其推入。
感谢您的帮助。
-
更新:
这是我推送视图控制器的代码
- (UINavigationController*) rootNavigationController {
UITabBarController* tabBarController = (UITabBarController*) [[self window] rootViewController];
return (UINavigationController*) [tabBarController selectedViewController];
}
[rootNavigationController pushViewController:newViewController animated:true];
答案 0 :(得分:0)
有时候我也遇到过同样的问题。索引以某种方式被更改。为了处理这种情况,最好使用didSelectItem委托并将当前项目存储为Navigation控制器。因此,无需使用[tabBarController selectedViewController]。 参考: UITabBar(Controller) - Get index of tapped?