我正在开发一款iOS应用,其中我有选项卡栏+侧边菜单。
选项卡栏有5个项目,而侧边菜单大约有12个菜单。
所有侧边菜单功能来自选项卡1,侧边菜单可以在选项卡栏的所有视图中访问。
这意味着,如果我在选项卡2上,我也可以访问侧边菜单。当我从选项卡1的侧边菜单中点击菜单项时,我将进入选项卡1,然后进行导航。
我想做的是,比如说,如果我点击侧边菜单中的Complains菜单,我想要进入ComplainsViewController。
我使用的代码如下。
// go to first tab
self.tabBarController.selectedIndex = 0;
// now navigate
ComplainsViewController *sViewCon = [self.storyboard instantiateViewControllerWithIdentifier:@"Complains"];
CATransition *transition = [CATransition animation];
transition.duration = 0.5;
transition.type = kCATransitionFade;
[self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
[self.navigationController pushViewController:sViewCon animated:NO];
我有两种情况。
情况1(正确)
我正在选项卡1上,然后从侧边菜单中选择“投诉”(Complains)。当我点击时,使用上述代码成功跳转到ComplainsViewController。
情况2(不正确)
我正在选项卡2上,然后从侧边菜单中选择“投诉”(Complains)。当我点击时,我成功地转到选项卡1,但我没有导航到ComplainsViewController。当我返回选项卡2时,我看到ComplainsViewController在选项卡2中打开。
你有什么想法如何先切换到选项卡,然后再导航到另一个视图控制器?
编辑1
下面是我的基本结构。
[[self navigationController] popToRootViewControllerAnimated:NO];
- oyvindhauge