为什么点击后退按钮后我在导航控制器中的视图会被清除?
Why does my view in a Navigation Controller clear after hitting the back button?
我在导航控制器中有两个 UITableViewControllers,其中包含用于表单的静态单元格。我有一个从第一个视图的单元格到第二个视图的 show segue,但是当我点击第二个视图上的后退按钮时,第二个视图中文本字段和选择器中的所有数据都被删除。为什么会这样,我该如何解决?
每次执行从第一个视图控制器到第二个视图控制器的转换时,都会创建第二个视图控制器。因此,每次新建时都会重新创建第二个视图控制器的初始状态。请参阅此答案以更好地理解该过程(这是问题 3 的答案):
iOS Segue - When are the viewControllers Instantiated
您有多种选择来解决这个问题。例如:
- 将数据存储在磁盘上的第二个视图控制器中(例如使用 NSUserDefaults)并在每次创建视图控制器时重新创建
- 将第二个视图控制器的实例存储在第一个视图控制器中,不要继续访问它,而是调用
self.navigationController?.pushViewController
打开第二个视图控制器
- 等...
我在导航控制器中有两个 UITableViewControllers,其中包含用于表单的静态单元格。我有一个从第一个视图的单元格到第二个视图的 show segue,但是当我点击第二个视图上的后退按钮时,第二个视图中文本字段和选择器中的所有数据都被删除。为什么会这样,我该如何解决?
每次执行从第一个视图控制器到第二个视图控制器的转换时,都会创建第二个视图控制器。因此,每次新建时都会重新创建第二个视图控制器的初始状态。请参阅此答案以更好地理解该过程(这是问题 3 的答案):
iOS Segue - When are the viewControllers Instantiated
您有多种选择来解决这个问题。例如:
- 将数据存储在磁盘上的第二个视图控制器中(例如使用 NSUserDefaults)并在每次创建视图控制器时重新创建
- 将第二个视图控制器的实例存储在第一个视图控制器中,不要继续访问它,而是调用
self.navigationController?.pushViewController
打开第二个视图控制器 - 等...