【问题标题】:May I use viewWillAppear instead of viewDidLoad for most of my initialization and setup?我可以在大部分初始化和设置中使用 viewWillAppear 而不是 viewDidLoad 吗?
【发布时间】:2012-03-27 17:43:31
【问题描述】:

我不擅长控制器之间的通信,所以我需要从 NSUserDefaults 进行设置和检查,这可能会导致任何问题吗?

【问题讨论】:

  • 在viewDidLoad中运行较长的进程会导致应用在一段时间内无响应。如果在表格视图之间发生这种情况,您的应用将在表格单元格突出显示的情况下停止,给您的用户带来很多挫败感。

标签: ios uiviewcontroller viewwillappear


【解决方案1】:

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

您不想在viewWillAppear 中做太多事情(当视图准备好显示时调用),因为它可能会影响性能;通常你想做一些事情,比如刷新表格,或更新标签上的文本等。一旦加载视图,就会调用 viewDidLoad 方法,通常添加按钮、标签等任何你想要的东西出现在视图上。如果您有任何可能需要很长时间才能执行的任务,最好在viewDidAppear 中执行,因为视图已经加载;最好在单独的线程上执行这些方法,或者至少在工作完成之前为用户提供某种活动指示器。

【讨论】:

  • 这帮助我解决了 viewDidLayoutSubviews 无限循环错误。谢谢。我只是将我的最小设置代码放在 viewWillAppear 中。
【解决方案2】:

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

查看here 了解更多信息。

【讨论】:

    猜你喜欢
    • 2018-05-27
    • 2016-12-20
    • 2018-09-18
    • 1970-01-01
    • 2016-11-26
    • 2013-05-28
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    相关资源
    最近更新 更多