次のコードは、アプリケーションが特定のローカル通知を受信したときに View Controller を表示する最新の試みです。
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
NSLog(@"Notification Received. UserInfo: %@", [notification.userInfo valueForKey:@"notificationType"]);
if ([[notification.userInfo valueForKey:@"notificationType"] isEqualToString:@"backup"])
{
NSLog(@"Backup notification received.");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"Yes" forKey:@"shouldBackup"];
[defaults synchronize];
SettingsViewController *vc = [self.window.rootViewController.tabBarController.viewControllers objectAtIndex:3];
[self.window.rootViewController.tabBarController.navigationController pushViewController:vc animated:NO];
}
else
{
NSLog(@"Did receive notification: %@, set for date:%@ .", notification.alertBody, notification.fireDate);
}
}
次に、viewDidAppear メソッドで使用する次のコードを使用して、バックアップを実行するかどうかを決定します。
if ([[defaults objectForKey:@"shouldBackup"] isEqualToString:@"Yes"]){
[defaults setObject:@"No" forKey:@"shouldBackup"];
[defaults synchronize];
HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
[self.navigationController.view addSubview:HUD];
HUD.delegate = self;
HUD.labelText = @"Backing Up Your Data..";
HUD.minSize = CGSizeMake(135.f, 135.f);
[HUD showWhileExecuting:@selector(performBackup) onTarget:self withObject:nil animated:YES];
}
しかし、viewDidAppear が呼び出されないように見えます。誰かが私が間違っていることを説明できますか? 私は今、いくつかの異なるアプローチを試しましたが、それを機能させることができないようです..
ありがとう、
タイシン