为什么在按下后退按钮后导航控制器中的视图会被清除?

时间:2016-04-03 18:38:28

标签: swift uinavigationcontroller navigation

我在导航控制器中有两个UITableViewControllers,其中包含我用于表单的静态单元格。我有一个从第一个视图到第二个视图的单元格显示segue,但是当我点击第二个视图上的后退按钮时,第二个视图中的文本字段和拾取器中的所有数据都将被删除。为什么这样,我该如何解决?

1 个答案:

答案 0 :(得分:0)

每次执行第一个视图控制器到第二个视图控制器的segue时,都会创建第二个视图控制器。因此,每次新建时都会重新创建第二个视图控制器的初始状态。请参阅此答案以更好地理解该过程(这是问题3的答案):

iOS Segue - When are the viewControllers Instantiated

您有很多选择可以解决此问题。 E.g:

  • 将数据存储在磁盘上的第二个视图控制器中(例如,使用NSUserDefaults),并在每次创建视图控制器时重新创建
  • 在第一个视图控制器中存储第二个视图控制器的实例,但不要转到它,而是调用self.navigationController?.pushViewController打开第二个视图控制器
  • 等...