我已经找到了许多使用Objective-C 回弹2 UIViewControllers的UINavigationController方法,但是当我尝试将其切换到Swift时它似乎没有用.
回弹的最佳方法是UIViewController什么?任何指导将不胜感激谢谢
我正在尝试返回到以前的视图控制器,但我正在遇到的问题(据我所知)不应该发生.
我正在尝试做的简短描述:我有4个视图控制器:A,B,C和D.基本的UI流程是A - > B - > C - > D.在C完成工作后,我想要返回B.
我的代码:
let viewControllerArray = self.navigationController?.viewControllers
for(var i=0;i<viewControllerArray?.count;i++){
if(viewControllerArray![i].isKindOfClass(InventoryListViewController)){
self.navigationController?.popToViewController(viewControllerArray![i], animated: true)
}
}
Run Code Online (Sandbox Code Playgroud)
如果B仍然存在于navigationcontroller的堆栈中,这一切都可以正常工作.如果B已从堆栈中删除(由于与内存相关的原因),它会让我尝试弹出一个不存在错误的视图控制器(显然).我很困惑的是,如果B不再存在于堆栈中,那么If语句是否应该阻止调用popToViewController方法?
基本上,我有3个视图控制器,A,B和C.A和B都有一个后退按钮,当用户向后导航时,它会将顶视图控制器弹出堆栈.但是,一旦用户将其转到C,就没有选项可以倒退,我想在发生这种情况时将A和B从堆栈中弹出而不实际向后导航到A和B,因为这会导致其他地方的后退按钮出现问题应用程序,因为堆栈上有剩余的元素.你怎么建议这样做?
我不想尝试导航回弹出的视图控制器.