我有一种情况,我的应用程序可以收到通知,告诉用户他的订单已被确认/拒绝 确诊病例: 是一个简单的,我会将导航控制器推到支付屏幕,一旦付款完成/取消我可以弹出到根视图控制器。 拒绝案件: 我希望应用程序打开其viewControllers导航堆栈的中间位置(即第八个屏幕),这样用户就可以重新编辑他的订单,甚至取消它并在应用程序中来回切换,因为他可以在正常的应用程序启动
这样做的最佳做法是什么? 我现在唯一的猜测是手动推动整个堆栈直到我到达所需的屏幕。
任何建议都将不胜感激。 感谢。
答案 0 :(得分:3)
UINavigationController上有一个popToViewController:animated:
方法,我认为你可以使用它。
如果你想用它的深度级别来引用viewController,你可以使用这样的东西;
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:8]
animated:YES];
这应该有效(未经测试),但我建议以某种方式引用它,而不是用数字引用它(例如8)。
答案 1 :(得分:1)
我相信现在可以通过调用设置viewControllers数组来完成 setViewControllers:vcs animated:no