iOS/Swift: 我应该在 viewDidLoad 和 viewWillAppear 之间的哪个函数中查询数据库?

iOS/Swift: in which function between viewDidLoad and viewWillAppear am I supposed to query a database?

在我的应用程序中,由 Swift 和 XCode 6 开发,我必须查询数据库并根据该答案修改并显示一些 UI 小部件在我的例子中,这是三个彩色按钮,我必须更改它们包含数字的文本。 这些按钮指示分配给用户的任务数量,并且根据任务的优先级它们具有不同的颜色。

那么,我是不是应该在viewDidLoad()函数中查询数据库,然后根据答案更改viewWillAppear中的按钮文本?是吗?

您可以随时查询数据库。

ViewDidLoad 只会在您的视图控制器的每个实例中被调用一次。它通常用于初始化对象。

在视图中[Will/Did]您通常会更新 UI 以通过设置标签文本和图像视图图像来反映您拥有的最新数据。

如果您不需要在每次出现视图时都重新查询数据库,那么您描述的方法是正确的。

是的,您可以在 viewDidLoad 中查询并在 viewDidAppear 中进行 UI 修改。

其实这取决于你的需要。 如果你的结果每次都会改变,或者如果你想每次显示视图时都刷新数据,那么在 viewWillAppear 或 viewDidAppear 中查询和修改 UI,因为 viewDidLoad 只会在你的视图首次加载时查询一次。

是的,你可以在 viewDidLoad 中查询它,但如果你在 viewWillAppear 中查询它会更好,因为 viewDidLoad 在视图第一次加载时调用一次,并且不会再次调用,除非视图将 deloc 但 viewWillAppear 每次调用例如你有一个视图里面有导航视图,你在另一个视图里面导航,所以当你按下后退按钮时,viewDidLoad 不会调用,但是 viewWillAppear 会一直调用。