iOS Swift,返回到视图控制器的同一个实例

我有一个问题,我有两个视图控制器A和B.视图控制器B有一个地图,其上有一个路线绘制。 我可以在这两个视图控制器之间前后移动,但是B视图控制器在每次加载时都会重置。 我认为这是因为我正在使用segues,并且每次都创build一个View控制器的新实例。

我已经尝试使用下面的代码来解决这个问题,但它仍然无法正常工作。 视图加载正确,但视图控制器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) } 

我在做什么错,我该如何解决? 我想让视图控制器B随着地图和路线一起留在内存中,所以当用户返回时他不必再input所有的信息。

您应该在types为UIViewController的类中创build一个variables,并将您的代码更改为以下内容:

 @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) } 

这样你一次创buildviewController,保存它,如果你想打开它再次出现以前创build一个。