数据在一个 table 视图中是持久的,但在其他视图控制器之间切换时不是

Data is persistent in one table view, but not when switching between other view controllers

我希望在我的应用程序中实现联系人列表。我有添加联系人工作,它积极使用 NSCoding 为联系人写入磁盘。它会在联系人列表和新的联系人视图之间正确更新,但当我从另一个视图切换时不会。

当我以一种准备数据的方式来自非接触视图时,我需要 prepareforsegue 吗?或者我是否需要在第一个视图中创建我的 Set<Contacts> 并在视图之间传递引用。截至目前,它仅在我从添加联系人视图控制器执行 unwindsegue 时更新数据。

我需要更多上下文(代码)来确保这会解决您的问题。

但我过去遇到过类似的问题,原因很简单:

我把刷新代码放在了ViewDidLoad()。仅在加载 ViewController 时调用(它第一次出现),而不是每次切换回它时调用(不重新加载)。

您应该将代码放在 ViewDidAppear() 中,如果您希望每次 "switch" 返回视图时都执行它,则应将代码放在 ViewWillAppear() 中。

这是您的代码:

ViewDidAppear(){

some code
some code

code that refreshes view with contacts

}

它应该是这样的:

ViewDidLoad() {

some code 
some code
}

ViewDidAppear() {
code that refreshes view with contacts
}

每次您的视图出现在屏幕上时要执行的代码应放在“ViewDidAppear()”中。