當用戶得到推送通知時,我希望應用程序打開到某個UIViewController。我在xCode 5中有故事板。從推送通知的ios上的AppDelegate更改UIViewController
我覺得我的代碼是接近,但它拋出一個錯誤
這裏是方法的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嗎? – rocky
如果不知道故事板中的視圖控制器層次結構是什麼,很難回答你的問題。從錯誤中可以明顯看出,窗口的根視圖控制器是SplashViewController,而不是UINavigationController。那麼,你的等級是什麼? – rdelmar
感謝您的回覆。我不清楚該層次結構如何工作。一直試圖找到這個教程,以更好地理解它。我對我的帖子進行了編輯,以提供有關層次結構的更多信息。讓我知道是否需要更多信息。 – tomjung