我想要的是在执行 segue 后关闭 viewController
,这样新 View 上的导航 Controller 的后退按钮就不会返回到我刚刚关闭的 View ,但是它转到 Storyboard 中它之前的 View ,就像它是第一次加载一样。
我已经尝试过诸如 dismiss
之类的东西,但它对我来说并没有真正起作用,因为它只关闭了我为执行该功能而按下的按钮所在的 View :
@objc func goToList(){
self.dismiss(animated: true, completion: nil)
performSegue(withIdentifier: "goToList", sender: nil)
}
最佳答案
导航 Controller 维护已打开(推送)的 ViewController 的堆栈(数组)。它还能够将这些 ViewController 从堆栈中弹出,直到它到达特定的一个。
例如,如果您希望返回到之前类型为 MyInitialVC
的 View Controller ,那么您需要搜索堆栈直到找到该类型的 VC,然后弹出到它:
let targetVC = navigationController?.viewControllers.first(where: {$0 is MyInitialVC})
if let targetVC = targetVC {
navigationController?.popToViewController(targetVC, animated: true)
}
注意。在没有 XCode 的情况下从内存中编写,因此您可能需要更正小错别字
关于ios - 在 segue 之后关闭 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58489415/