iOS导航-自定义后退按钮或从堆栈中删除viewcontriller?

时间:2019-12-04 11:38:56

标签: ios uiviewcontroller navigation stack back-button

我是ios的新手。我有几个视图控制器,并且我想要返回按钮来使用户升级控制器。 Example

但是,如果用户来自gameOver视图,则后退按钮会将其发送回gameOver,我不希望出现这种情况(我希望将用户发送到第二级(游戏级别)控制器,如图所示)。在android上,我可以非常轻松地用鼠标设置导航操作的弹出行为。

在ios中执行相同操作的正确方法是什么?还是我必须创建自定义后退按钮并手动执行所有操作?

1 个答案:

答案 0 :(得分:0)

使用Swift可以通过以下代码实现:

func popToViewController(_ specificViewController: Swift.AnyClass) {
 let viewControllers = self.navigationController!.viewControllers
 for eachViewController in viewControllers {
     if eachViewController.isKind(of: specificViewController) {
         self.navigationController!.popToViewController(eachViewController, animated: true)
         break;
     }
 }
}

用法:

self.popToViewController(gameLevelViewController.self)