我目前正在尝试在从通知中心打开通知后重新加载我的 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/