简体   繁体   English

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

[英]Ios navigation - custom back button or removing viewcontriller from stack?

I'am new to ios.我是 ios 新手。 I have several view controllers and I want back button to get user to level up controller.我有几个视图控制器,我想要后退按钮让用户升级控制器。 Example .例子

But if user comes from gameOver view, back button sent him back to gameOver and I don't want such behavior (I want user to be sent at second level (games level) controller as shown).但是如果用户来自 gameOver 视图,后退按钮将他发送回 gameOver 并且我不希望这种行为(我希望用户被发送到第二级(游戏级)控制器,如图所示)。 On android I could set the pop behavior for the navigation actions with mouse very easily.在 android 上,我可以很容易地用鼠标设置导航操作的弹出行为。

What is the correct way to do the same in ios?在 ios 中执行相同操作的正确方法是什么? Or I have to create the custom back button and do everything manually?或者我必须创建自定义后退按钮并手动完成所有操作?

Using Swift this can be achieved using below code:使用 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;
     }
 }
}

Usage:用法:

self.popToViewController(gameLevelViewController.self)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM