Swift & 导航:如何替换 ViewController 并发送一些参数?
Swift & Navigation : How do I replace a ViewController and also send some parameters?
如何替换 ViewController 并发送一些参数?
使用下面的代码,我只能将另一个 ViewController 推入我当前的导航堆栈。
我们可以立即弹出并推送另一个吗?还是有一个官员可以永久更换?请给我看看。谢谢。
执行 Segue
performSegue(withIdentifier: "ToNewViewController", sender: self)
准备 Segue
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let destinationVC = segue.destination as! NewViewController
destinationVC.params = params
}
如果您有一个导航控制器作为您的应用 window root ,那么您可以管理所有 viewControllers
var vcs = self.navigationController!.viewControllers // get all vcs
vcs = vcs.dropLast() // remove last vc
let vc = // create new VC
vcs.append(vc) // append it
然后改变那个数组并像这样重新设置它
self.navigationController!.setViewControllers(vcs,animated:true)
或
您可以使用 this 获取顶部呈现 vc ,然后向该 vc 添加一个方法来执行数据替换和刷新 UI
如何替换 ViewController 并发送一些参数?
使用下面的代码,我只能将另一个 ViewController 推入我当前的导航堆栈。 我们可以立即弹出并推送另一个吗?还是有一个官员可以永久更换?请给我看看。谢谢。
执行 Segue
performSegue(withIdentifier: "ToNewViewController", sender: self)
准备 Segue
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let destinationVC = segue.destination as! NewViewController
destinationVC.params = params
}
如果您有一个导航控制器作为您的应用 window root ,那么您可以管理所有 viewControllers
var vcs = self.navigationController!.viewControllers // get all vcs
vcs = vcs.dropLast() // remove last vc
let vc = // create new VC
vcs.append(vc) // append it
然后改变那个数组并像这样重新设置它
self.navigationController!.setViewControllers(vcs,animated:true)
或
您可以使用 this 获取顶部呈现 vc ,然后向该 vc 添加一个方法来执行数据替换和刷新 UI