Ios 导航 - 自定义后退按钮或从堆栈中删除视图控制器?
Posted
技术标签:
【中文标题】Ios 导航 - 自定义后退按钮或从堆栈中删除视图控制器?【英文标题】:Ios navigation - custom back button or removing viewcontriller from stack? 【发布时间】:2019-12-04 11:38:56 【问题描述】:我是 ios 新手。我有几个视图控制器,我想要后退按钮让用户升级控制器。 Example.
但如果用户来自 gameOver 视图,后退按钮会将他送回 gameOver,我不希望这样的行为(我希望用户在第二级(游戏级)控制器被发送,如图所示)。在 android 上,我可以很容易地用鼠标为导航操作设置弹出行为。
在 ios 中执行相同操作的正确方法是什么?还是我必须创建自定义后退按钮并手动完成所有操作?
【问题讨论】:
如果您使用故事板(我会推荐),您可以使用展开转场:***.com/questions/12561735/… 感谢您的回答。是否可以使用带有后退按钮的展开转场?或者我必须为此做自定义按钮 这个问题的第二个答案说你可以把它作为默认的后退操作,他提供了一个可以运行的示例 github 项目。我从来没有尝试过。如果这不起作用,那么是的,您需要一个自定义按钮:***.com/questions/29236656/… 【参考方案1】:使用 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 导航 - 自定义后退按钮或从堆栈中删除视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章