iOS导航到UINavigationController堆栈的中间

时间:2013-09-08 13:29:55

标签: ios apple-push-notifications

我有一种情况,我的应用程序可以收到通知,告诉用户他的订单已被确认/拒绝 确诊病例: 是一个简单的,我会将导航控制器推到支付屏幕,一旦付款完成/取消我可以弹出到根视图控制器。 拒绝案件: 我希望应用程序打开其viewControllers导航堆栈的中间位置(即第八个屏幕),这样用户就可以重新编辑他的订单,甚至取消它并在应用程序中来回切换,因为他可以在正常的应用程序启动

这样做的最佳做法是什么? 我现在唯一的猜测是手动推动整个堆栈直到我到达所需的屏幕。

任何建议都将不胜感激。 感谢。

2 个答案:

答案 0 :(得分:3)

UINavigationController上有一个popToViewController:animated:方法,我认为你可以使用它。

相关文档:https://developer.apple.com/library/ios/documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html#//apple_ref/occ/instm/UINavigationController/popToViewController:animated

如果你想用它的深度级别来引用viewController,你可以使用这样的东西;

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:8]
                                      animated:YES];

这应该有效(未经测试),但我建议以某种方式引用它,而不是用数字引用它(例如8)。

答案 1 :(得分:1)

我相信现在可以通过调用设置viewControllers数组来完成 setViewControllers:vcs animated:no