当我收到远程通知时,我试图从应用程序委托方法更改为主控视图,以便在主视图中执行到另一个视图的分段,但我得到了一个NSInvalidArgumentException
didReceiveRemoteNotification时应用程序代理中的代码:
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
EmergencyMasterViewController* maincontroller = (EmergencyMasterViewController*)self.window.rootViewController;
[maincontroller alert];
}MasterView中的代码:
-(void)alert
{
[self performSegueWithIdentifier: @"Warning" sender: self];
}我得到的错误是:[UINavigationController alert]: unrecognized selector
发布于 2013-06-08 00:34:53
这是因为你的窗口rootViewController实际上是一个UINavigationController而不是你的EmergencyMasterViewController。你需要检查如何在你的应用委托didFinishLaunchingWithOptions或类似的东西中分配窗口根视图控制器。
尝试将视图控制器嵌入到导航控制器中,例如:
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
NSArray *viewControllers = navigationController.viewControllers
EmergencyMasterViewController *maincontroller = [viewControllers objectAtIndex:0];在您尝试获取EmergencyMasterViewController之前,UINavigationController首先弹出到根视图控制器可能更安全,以防用户已经在导航堆栈中导航:
[navigationController popToRootViewControllerAnimated:NO];https://stackoverflow.com/questions/16988774
复制相似问题