【问题标题】:viewWillAppear and UIApplicationDidBecomeActiveNotificationviewWillAppear 和 UIApplicationDidBecomeActiveNotification
【发布时间】:2012-02-05 16:35:00
【问题描述】:

当应用程序激活时,我正在使用 UIApplicationDidBecomeActiveNotification 刷新我的表格视图。我的问题是,在我的 ViewWillAppear 中,我还调用了一个方法来刷新这个表的数据。

这会导致应用程序启动时表被刷新两次。当应用程序最初启动时,如何让其中一个不触发?刷新表需要对网络和本地数据进行一些密集处理。所以我真的希望只执行一次此操作。

谢谢。

【问题讨论】:

    标签: iphone notifications viewwillappear addobserver


    【解决方案1】:

    您需要使用 UIApplicationWillEnterForegroundNotification 而不是 UIApplicationDidBecomeActiveNotification

    后者会在您的应用每次激活时发布(初始启动、通话/短信中断后返回应用等)。但前者仅在从后台唤醒的情况下发布。请注意,在这种情况下 viewWillAppear 不会被调用(因为它应该是第一眼看到的)。

    【讨论】:

      【解决方案2】:

      一种方法是使用标志,您可以在didFinishLaunching 中设置它,因为每次启动只执行一次。

      【讨论】:

      • 问题是每次视图出现时我都需要执行它。因此,如果应用程序从睡眠中回来,并且在那个视图中......它需要执行。并且任何时候也可以导航视图。我曾以为当视图从睡眠中恢复时,“视图将出现”会被阻止。但事实并非如此。我认为设置该标志会将我对该逻辑的调用限制为每次启动仅一次......或者我错过了什么?谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多