如何将视图控制器从导航控制器带到前面

  • 本文关键字:控制器 前面 导航 视图 swift
  • 更新时间 :
  • 英文 :


我是否可以将导航控制器堆栈中的特定ViewController放到前面,而不重新加载它或先关闭其他任何一个?很像popToViewController,但没有删除顶部的

通常从viewControllers中移除并再次推送

let nav = UINavigationController(rootViewController: UIViewController())
if nav.viewControllers.count > 1 {
let last = nav.viewControllers.removeLast()
nav.pushViewController(last, animated: true)
}

您可以使用self.navigationController?.viewControllers获取所有导航堆栈控制器并根据需要更改位置。

在这个例子中,首先我从导航堆栈中找到Controller,然后最后移动。

if let navigationController = self.navigationController,
let indexForController = navigationController.viewControllers.firstIndex(where: {$0 is YourControllerName}) {
let removedController = self.navigationController?.viewControllers.remove(at: indexForController)
self.navigationController?.viewControllers.append(removedController!)
}

相关内容

最新更新