为什么在尝试在切换后推送新的ViewController时,选项卡控制器切换不起作用

时间:2018-09-05 22:58:23

标签: ios objective-c uiviewcontroller uinavigationcontroller uitabbarcontroller

我正在使用以下命令切换选项卡栏

self.tabbarcontroller.selectedIndex=0;

这是可行的,但是如果我按另一个视图控制器,则选项卡栏的切换不会发生,但是,如果我手动选择第一个视图控制器,则可以看到被推的视图控制器在那里。

但是为什么只有在将另一个ViewController推到顶部时才发生切换?

仅供参考: 我将视图控制器推到顶部视图控制器顶部的方式没有问题,因为我尝试注释掉用于切换选项卡栏项目的代码,并且没有任何问题地将其推入。

感谢您的帮助。

-

更新:

这是我推送视图控制器的代码

- (UINavigationController*) rootNavigationController {
    UITabBarController* tabBarController = (UITabBarController*) [[self window] rootViewController];

    return  (UINavigationController*) [tabBarController selectedViewController];
}

  [rootNavigationController pushViewController:newViewController animated:true];

1 个答案:

答案 0 :(得分:0)

有时候我也遇到过同样的问题。索引以某种方式被更改。为了处理这种情况,最好使用didSelectItem委托并将当前项目存储为Navigation控制器。因此,无需使用[tabBarController selectedViewController]。 参考: UITabBar(Controller) - Get index of tapped?