【问题标题】:How to check application come to fore ground in an UIViewController?如何检查应用程序在 UIViewController 中是否出现?
【发布时间】:2015-09-29 10:22:25
【问题描述】:

我的应用程序集成了远程推送通知服务。它工作正常。我想在我的应用程序中更新用户未读通知计数。如果在应用程序处于后台时收到通知,并且如果用户在未单击通知而不是单击通知的情况下启动应用程序,则用户通过点击应用程序图标打开应用程序(应用程序尚未关闭,只是在后台运行)。所以由于用户还没有阅读通知,我的视图控制器应该更新新的通知计数。

我该怎么做?请帮帮我

【问题讨论】:

    标签: ios uiviewcontroller


    【解决方案1】:

    您可以在 ViewController 的 viewWillAppear: 方法中注册 UIApplicationWillEnterForegroundNotification

    [[NSNotificationCenter defaultCenter] addObserver:self
                                          selector:@selector(updateGUI) 
                                          name:UIApplicationWillEnterForegroundNotification 
                                          object:[UIApplication sharedApplication]];
    

    然后用最新的服务器数据更新你的 UI:

    - (void)updateGUI {
        // Get latest unread request count from server and update UI
    }
    

    【讨论】:

    • 不要忘记在dealloc中删除self作为观察者。
    • 是的,这很重要。否则你可能最终会崩溃。谢谢@rckoenes
    • 谢谢,请问如何在updateGUI方法中获取徽章编号?
    • 虽然你可以使用[UIApplication sharedApplication].applicationIconBadgeNumber,但正如我在帖子中提到的,我建议你从服务器获取它。由于您的应用程序现在进入前台,您有机会直接从您的服务器获取最新计数。这将是最新和最大的价值。显示加载覆盖,直到响应返回。
    • 没问题。很高兴,它有帮助!
    猜你喜欢
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2019-01-20
    • 2012-02-05
    • 2018-11-11
    • 2022-01-06
    相关资源
    最近更新 更多