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

时间:2016-04-19 18:01:11

标签: ios swift persistent nscoding

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

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

1 个答案:

答案 0 :(得分:0)

我需要更多的上下文(代码)以确保这将解决您的情况。

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

我将刷新代码放在ViewDidLoad()中。只有在加载ViewController时(第一次出现)才会调用此方法,而不是每次切换回它时(不重新加载)。

如果您希望每次“切换”回视图时执行代码,就应该将代码放在ViewDidAppear()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()”中。