首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >didReceiveRemoteNotification时更改视图

didReceiveRemoteNotification时更改视图
EN

Stack Overflow用户
提问于 2013-06-08 00:23:02
回答 1查看 975关注 0票数 0

当我收到远程通知时,我试图从应用程序委托方法更改为主控视图,以便在主视图中执行到另一个视图的分段,但我得到了一个NSInvalidArgumentException

didReceiveRemoteNotification时应用程序代理中的代码:

代码语言:javascript
复制
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

    EmergencyMasterViewController* maincontroller = (EmergencyMasterViewController*)self.window.rootViewController;
    [maincontroller alert];
}

MasterView中的代码:

代码语言:javascript
复制
-(void)alert
{
    [self performSegueWithIdentifier: @"Warning" sender: self];
}

我得到的错误是:[UINavigationController alert]: unrecognized selector

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-08 00:34:53

这是因为你的窗口rootViewController实际上是一个UINavigationController而不是你的EmergencyMasterViewController。你需要检查如何在你的应用委托didFinishLaunchingWithOptions或类似的东西中分配窗口根视图控制器。

尝试将视图控制器嵌入到导航控制器中,例如:

代码语言:javascript
复制
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; 
NSArray *viewControllers = navigationController.viewControllers 
EmergencyMasterViewController *maincontroller = [viewControllers objectAtIndex:0];

在您尝试获取EmergencyMasterViewController之前,UINavigationController首先弹出到根视图控制器可能更安全,以防用户已经在导航堆栈中导航:

代码语言:javascript
复制
[navigationController popToRootViewControllerAnimated:NO];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16988774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档