【发布时间】:2016-07-13 10:19:10
【问题描述】:
这是我作为休闲(对象)的 ViewController:
-
FirstViewController- 带有标签栏 + 导航栏的视图,也是 ta 栏的一部分; -
SecondViewController- 仅使用导航控制器查看 -
ThirdViewController- 仅使用导航控制器查看
以及我正在尝试做的事情(逻辑步骤):
从
FirstViewController呈现SecondViewController(模态)从
SecondViewController推送ThirdViewController(推送)popToRootViewControllerAnimated- 从ThirdViewController弹出到FirstViewController(弹出)
这是我正在逐步使用的代码:
-
在
FirstViewController类中SecondViewController * secondViewController = [[UIStoryboard MainStoryboard] instantiateViewControllerWithIdentifier:NSStringFromClass([SecondViewController class])]; UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController: secondViewController]; [self.navigationController presentViewController: navigationController animated:YES completion:nil]; -
在
SecondViewController类中:ThirdViewController * thirdViewController = [[UIStoryboard MainStoryboard] instantiateViewControllerWithIdentifier:NSStringFromClass([ThirdViewController class])]; [self.navigationController pushViewController: thirdViewController animated:YES]; -
我在
ThirdViewController上课:[self.navigationController popToRootViewControllerAnimated:YES];
我的问题在于第 3 点,当我弹出到根视图控制器而不是从 ThirdViewController 转到 FirstViewController 时,它只会转到 SecondViewController。
【问题讨论】:
-
很简单。您从第二个推送,当您弹出第三个时,您又回到第二个。因为当您推送时,self.navigationController 将具有 secondView 控制器的实例,但不是第一个。
-
发布带有代码示例的官方答案,以便我投票
标签: ios objective-c uinavigationcontroller storyboard