2012-03-27 26 views
3

我不擅长控制器之间的通信,所以我需要从NSUserDefaults安装和检查很多,可能会导致任何问题?我可以使用viewWillAppear而不是viewDidLoad进行大部分初始化和设置吗?

+0

在viewDidLoad中运行一个很长的过程会使应用程序在一段时间内无响应。如果这种情况发生在表格视图之间,那么您的应用程序将突然停顿并突出显示表格单元格,从而给您的用户带来很多挫折。 – 2012-03-27 17:49:00

回答

3

这取决于你在加载视图的表单开始到结束之后打算做什么。

你不想在viewWillAppear(当视图准备好显示时调用)做太多,因为它可能会影响性能;通常你想做一些事情,比如刷新表格,或者更新标签上的文字等。一旦加载视图,将调用viewDidLoad方法,并且通常添加按钮,标签等内容,以及任何想要显示的内容风景。如果您有任何可能需要很长时间才能执行的任务,则最好在viewDidAppear中执行这些任务,因为该视图已被加载;在单独的线程上执行这些方法是一种很好的做法,或者至少为用户提供某种活动指示器,直到完成工作。

+0

这帮助我解决了viewDidLayoutSubviews无限循环错误。谢谢。我只是把我最小的设置代码放在viewWillAppear中。 – vaticRite 2015-03-24 08:24:22

0

记得viewDidLoad在视图加载后调用一次。 但是当您的视图变为可见时,将调用viewWillAppear。有了这些信息,你可以决定放置。

here欲了解更多信息。

相关问题