我的AppDelegate位於目標c中,並且我希望在接收推送通知時顯示的viewcontroller位於Swift中。我嘗試了很多東西,但我無法獲得推送通知的正確視圖控制器。下面的代碼是我的嘗試 -在接收推送通知時顯示viewcontroller不工作,其視圖不在窗口層次結構中
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *sessionUserID = [defaults objectForKey:@"USERID"];
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
NSLog(@"App State Inactive->%d",application.applicationState== UIApplicationStateInactive);
NSLog(@"App State Active->%d",application.applicationState== UIApplicationStateActive);
NSLog(@"App State Active->%d",application.applicationState== UIApplicationStateBackground);
NSLog(@"=====userinfo %@",userInfo);
NSString *msgID = userInfo[@"aps"][@"alert"];
if(sessionUserID != nil){
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *destCon = [storyboard instantiateViewControllerWithIdentifier:@"notification"]; // Swift viewcontroller
UIViewController *navController =(UIViewController *) self.window.rootViewController;
[navController presentViewController:destCon animated:YES completion:nil];
}
}
下面是日誌消息 -
2015-10-19 18:40:43.363 VidurOnMobile[631:94551] App State Inactive->1
2015-10-19 18:40:43.363 VidurOnMobile[631:94551] App State Active->0
2015-10-19 18:40:43.363 VidurOnMobile[631:94551] App State Active->0
2015-10-19 18:40:43.364 VidurOnMobile[631:94551] =====userinfo {
aps = {
alert = test;
badge = 1;
sound = default;
};
id = 1;
}
2015-10-19 18:40:43.364 VidurOnMobile[631:94551] Session is still there
2015-10-19 18:40:43.646 VidurOnMobile[631:94551] Warning: Attempt to present <VidurOnMobile.NotificationDetails: 0x156c5810> on <VidurOnMobile.LoginViewController: 0x15553910> whose view is not in the window hierarchy!
請幫幫忙,我嘗試過很多事情,但它不工作:(
我嘗試這樣做,我得到同樣的錯誤 – RichieRich
二〇一五年十月一十九日18:57:54.358 VidurOnMobile [653:99800]警告:試圖提出< VidurOnMobile.NotificationDetails:0x16d81000>在的視圖不在窗口層次結構中! –
RichieRich
只要您檢測到當前可見的viewController,就可以從'AppDelegate'實際呈現模態視圖控制器。你可以請嘗試我的編輯帖子。 – Abhinav