我有4个ViewControllers连接到NavigationController。它们的顺序是1-> 2-> 3-> 4。当用户按下4上的后退按钮时,我希望它们被重定向到2而不是3.同时,我还希望当按下后退按钮时用户被定向回2 。 这可能吗?提前谢谢。
答案 0 :(得分:1)
当然你可以这样做。只需在4th ViewController上创建左栏按钮即可。并在该按钮操作弹出到第二个viewcontroller
if let viewcontroller = self.navigationController?.viewControllers[1] where viewcontroller.isKindOfClass(YourController) {
self.navigationController?.popToViewController(viewcontroller, animated: false) }
答案 1 :(得分:0)
if let vc = self.viewControllerWithClass(YourVC.self) {
self.popToViewController(vc, animated: true)
}
extension UINavigationController {
func viewControllerWithClass(_ aClass: AnyClass) -> UIViewController? {
for vc in self.viewControllers {
if vc.isMember(of: aClass) {
return vc
}
}
return nil
}
}
答案 2 :(得分:0)
您可以在导航堆栈中检查控制器。
let controllers = navigationController!.viewControllers.reverse()
for controller in controllers
{
if controller.isKindOfClass(YourController)
{
self.navigationController?.popToViewController(controller, animated: true)
return
}
}