【发布时间】:2013-12-13 00:02:14
【问题描述】:
当用户收到推送通知时,我希望应用打开某个 UIViewController。我在带有故事板的 xCode 5 中。
我认为我的代码很接近,但它抛出了一个错误
这是AppDelegate中的方法
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
UINavigationController *nav = (UINavigationController *)self.window.rootViewController;
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
RewardList *vc = (RewardList *)[storyboard instantiateViewControllerWithIdentifier:@"RewardList"];
[nav pushViewController:vc animated:YES];
}
[nav pushViewController:vc animated:YES]; 上出现错误我不太确定发生了什么。有人可以帮助阐明这个问题吗?
这是错误:
-[SplashViewController pushViewController:animated:]: unrecognized selector sent to instance 0x1f862630 2013-12-12 17:58:28.719 appName[473:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SplashViewController pushViewController:animated:]: unrecognized selector sent to instance 0x1f862630'
编辑: 应用根视图控制器是 SplashNavigationController,它是一个 UIViewController。从那里我有一个 UITabBarController。在我的第三个标签里面,是 RewardList,它也是一个 UIViewController。我需要从当前视图转到我的第三个选项卡,即 RewardList 选项卡。
我在这方面找到了很多帖子,但在我的情况下似乎没有任何效果。
【问题讨论】:
-
你确定 nav 是 UINavigationController 吗?
-
在不知道情节提要中的视图控制器层次结构的情况下很难回答您的问题。从错误中可以清楚地看出,窗口的根视图控制器是 SplashViewController,而不是 UINavigationController。那么,你的层次结构是什么?
-
感谢所有回复。我不清楚层次结构是如何工作的。一直在尝试找到有关此的教程以更好地理解它。我对我的帖子进行了编辑,以提供有关层次结构的更多信息。如果需要更多信息,请告诉我。
标签: ios iphone objective-c uiviewcontroller