【发布时间】:2015-05-23 12:01:08
【问题描述】:
我刚刚开始学习如何使用 iOS 和 Parse 实现推送通知。 目前,我可以从 Parse 仪表板向应用程序发送推送通知,收到通知,正如我在 Xcode 控制台中看到的那样,但现在我的问题是我无法从 AppDelegate 打开视图控制器。
这是我的代码:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))handler {
// Create empty photo object
NSString *photoId = [userInfo objectForKey:@"p"];
NSLog(@"P=%@",photoId);
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
Aceptado *targetViewController = (Aceptado*)[mainStoryboard instantiateViewControllerWithIdentifier:@"servicio_aceptado"];
UINavigationController *controlador = [[UINavigationController alloc]init];
[controlador pushViewController:targetViewController animated:YES];
}
正如我所说,控制台显示日志NSLog(@"P=%@",photoId),收到通知,但未显示视图控制器,显示任何警告或错误。
欢迎任何帮助。
【问题讨论】:
-
您的代码似乎没问题,除了一件事。你从来没有设置rootviewcontroller。如果您想创建导航控制器,则将其设为根视图控制器或在情节提要中使用一个并将其设置为根视图控制器。
-
@MaheshAgrawal,谢谢。但是设置 rootviewcontroller 会抛出异常。
-
然后您可以在情节提要中添加导航控制器并将其设置为根视图控制器
-
@MaheshAgrawal,但是应用程序的其余部分可能会改变,或者不会?
-
这取决于您的应用流程。你告诉你正在使用 SWRevealViewController。当您想要导航到其他控制器时,我不知道您的应用程序流程,但是如果您要推送任何控制器,那么您必须需要导航控制器。
标签: ios apple-push-notifications appdelegate