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

标签 ios uiviewcontroller navigation stack back-button

我是 ios 新手。我有几个 View Controller ,我想要后退按钮来让用户升级 Controller 。 Example .

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

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

最佳答案

使用 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)

关于iOS 导航 - 自定义后退按钮或从堆栈中删除 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59175172/

相关文章:

ios - NSJSONSerialization JSONObjectWithData,其中数据包含换行符

iphone - 在 objective-c 中创建数据包

iphone - 更新主线程上的标签不起作用

javascript - 在我们滚动覆盖导航页面时防止主页滚动

ios - 是否可以预填 Facebook 分享标题,因为看起来有些应用程序预填了它们?

iphone - 我可以在 Monotouch 中分配多少内存?

ios - UITableViewController 加载方法的逻辑顺序是什么?

ios - 呈现一个背景昏暗的 View Controller

visual-studio - Home键转到Visual Studio中的行首吗?

html - css 下拉导航在 IE 7 或 6 中不正确