ios - 打开通知后从 AppDelegate 重新加载 ViewController

标签 ios objective-c

我目前正在尝试在从通知中心打开通知后重新加载我的 ViewController。在我的 AppDelegate 中,我使用这个函数:

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{

if(application.applicationState == UIApplicationStateActive) {

    //app is currently active, can update badges count here

}else if(application.applicationState == UIApplicationStateBackground){


}else if(application.applicationState == UIApplicationStateInactive){

    //CODE

    //REFRESH VIEW HERE, AFTER THE CODE ABOVE

}

如何做到这一点? 这是我第一次接触 Objective-C,所以请不要对我无礼 ihihihi。

谢谢。

最佳答案

您可以使用 NSNotificationCenter 让您的 UIViewController 知道您有一些更新的数据要显示。

UIViewController 中为您的特定通知注册到通知中心,然后更新您的 View 。

在应用委托(delegate)中:

[[NSNotificationCenter defaultCenter] 
    postNotificationName:@"NEW_DATA_NOTIFICATION" 
    object:nil];

在您的 UIViewController 中,在 viewDidLoad 中:

[[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(receiveNewDataNotification:) 
    name:@"NEW_DATA_NOTIFICATION"
    object:nil];

同样在您的 UIViewController 中:

- (void) receiveNewDataNotification:(NSNotification *) notification {
    if ([[notification name] isEqualToString:@"NEW_DATA_NOTIFICATION"]) {
        NSLog(@"Received New Data Notification!");
        // Update your view here...
    }
}

关于ios - 打开通知后从 AppDelegate 重新加载 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54130996/

相关文章:

ios - CMVideoFormatDescriptionGetCleanAperture() 快速错误

iphone - UIPageViewController 在 iOS 6 中不返回任何手势识别器

objective-c - 为什么我的 Cocoa 应用程序中的某些行需要永远运行?

ios - NSURLSessionDownloadTaskDelegate JSON 响应

ios - 如何在 iOS 中制作带有底部箭头的提示气球?

带有嵌套嵌入式框架的 iOS 8+ 框架

ios - 如何在 NSBundle 中从 Assets.car(xcassets 的编译版本)加载图像?

objective-c - Cocoa:获取在另一个应用程序中显示的图像

ios - IOS 国际电话无模式

iOS:(Swift)如何显示距当前位置的距离并在注释副标题上存在注释