gpt4 book ai didi

iOS Swift,返回到 View Controller 的同一实例

转载 作者:可可西里 更新时间:2023-11-01 00:53:07 26 4
gpt4 key购买 nike

我有一个问题,我有两个 View Controller A 和 B。 View Controller B 有一张 map ,上面绘制了一条路线。我现在可以在两个 View Controller 之间来回移动,但是 B View Controller 在每次加载时都会重置。我认为这是因为我正在使用 segues 并且它每次都在创建一个新的 View Controller 实例。

我试过使用下面的代码来解决这个问题,但还是不行。 View 加载正确,但 View Controller B 仍在重置

@IBAction func mapButton(sender: AnyObject){
let storyboard = UIStoryboard(name: "MainStoryboard", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("SecondViewController") as! UIViewController
self.presentViewController(vc, animated: true, completion: nil)
}

我做错了什么,我该如何解决?我希望 View Controller B 与 map 和路线一起保留在内存中,因此当用户返回时,他不必再次输入所有信息。

最佳答案

您应该在 UIViewController 类型的类中创建一个变量,并将您的代码更改为以下内容:

@IBAction func mapButton(sender: AnyObject){
if yourVariable == nil {
let storyboard = UIStoryboard(name: "MainStoryboard", bundle: nil)
yourVariable = storyboard.instantiateViewControllerWithIdentifier("SecondViewController") as! UIViewController
}
self.presentViewController(yourVariable, animated: true, completion: nil)
}

这样你就创建了一次 viewController,保存它,如果你想再次打开它,请显示之前创建的那个。

关于iOS Swift,返回到 View Controller 的同一实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29993085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com