Перезагрузите ViewController из AppDelegate после открытия уведомления - PullRequest
0 голосов
/ 10 января 2019

В настоящее время я пытаюсь перезагрузить свой 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, поэтому, пожалуйста, не грубите со мной, ихихихи.

Спасибо.

1 Ответ

0 голосов
/ 10 января 2019

Вы можете использовать NSNotificationCenter, чтобы сообщить UIViewController, что у вас есть обновленные данные для отображения.

В UIViewController зарегистрируйтесь в центре уведомлений для получения определенного уведомления, а затем обновите представление.

В приложении делегат:

[[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...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...