私はXcode 4.3.2で作業しています
Local Notifications
あらかじめ決められた時間に新しいイベントをユーザーに警告するように実装しました。したがって、アプリがバックグラウンドにあり、時計が午前 8 時 (たとえば) を打つと、ユーザーはアプリから通知を受け取ります。
ユーザーがバックグラウンドからアプリを表示することにした場合、私は nib を読み込みます。現在、このペン先は適切に機能します。ペン先に配置されたとおりのビューが表示されます。ただし、ペン先がユーザーに表示された後、ユーザーを別のビューに転送したいと考えていますLocalNotificationsHandler.m
。2 番目のビューをプッシュしようとすると、アプリが失敗します。そのため、エラー メッセージは表示されませんが、2 番目の nib が読み込まれないようです。
要するに、流れは次のようになります。
- アプリがバックグラウンドで実行されているときにユーザーが通知を受け取る
- ユーザーはアプリを表示することを選択します
LocalNotificationsHandler nib
ロードしますself.navigationController == nil
(LocalNotificationsHandler.m 内)- self.navigationController は、新しいビューを取得するために "[pushViewController: "new view" animation:YES]" を行いません
AppDelegate.m ファイルに欠けているものがあるかどうか疑問に思っているので、AppDelegate.m ファイルから「didFinishLaunchingWithOptions」を含めました。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
// Add the navigation controller's view to the window and display.
NSLog(@"did finish launching with options");
[self.window addSubview:tabBarController.view];
[self.window makeKeyAndVisible];
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
if (self.locationManager == nil)
{
locationManager = [[CLLocationManager alloc] init];
locationManager.purpose = @"We will try to use you location";
}
if([CLLocationManager locationServicesEnabled])
{
[self.locationManager startUpdatingLocation];
}
self.navigationController.navigationBar.tintColor = nil;
return YES;
}