我有一种情况,我的应用程序可以收到一条通知,告诉用户他的订单已被确认/拒绝可以弹出到根视图控制器。被拒绝的情况:我希望应用打开它的viewControllers导航堆栈的中间(即第八屏),这样用户就可以重新编辑他的订单,甚至可以取消它并像他一样在应用程序中来回切换正常的应用程序启动。
这样做的最佳做法是什么?我现在唯一的猜测是手动推送整个堆栈,直到我到达所需的屏幕。
任何建议将不胜感激。谢谢。
我有一种情况,我的应用程序可以收到一条通知,告诉用户他的订单已被确认/拒绝可以弹出到根视图控制器。被拒绝的情况:我希望应用打开它的viewControllers导航堆栈的中间(即第八屏),这样用户就可以重新编辑他的订单,甚至可以取消它并像他一样在应用程序中来回切换正常的应用程序启动。
这样做的最佳做法是什么?我现在唯一的猜测是手动推送整个堆栈,直到我到达所需的屏幕。
任何建议将不胜感激。谢谢。
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)。
我相信现在可以通过调用 setViewControllers:vcs animated:no 来设置 viewControllers 数组来完成