Iphone 从AppDelegate触发序列以在情节提要中弹出视图

Iphone 从AppDelegate触发序列以在情节提要中弹出视图,iphone,ios,cocoa-touch,storyboard,uistoryboard,Iphone,Ios,Cocoa Touch,Storyboard,Uistoryboard,我正在尝试将我的应用程序转换为故事板,但遇到了一些问题。 在以前的模型中,我可以在我的AppDelegate中有一个“actionClass”,当我需要弹出视图时调用它 例如 但是现在有了故事板,它就不工作了。 然后,我在AppDelegate中尝试了以下代码: id currentController = [[[[self window] rootViewController] navigationController] visibleViewController]; [currentCont

我正在尝试将我的应用程序转换为故事板,但遇到了一些问题。 在以前的模型中,我可以在我的AppDelegate中有一个“actionClass”,当我需要弹出视图时调用它

例如

但是现在有了故事板,它就不工作了。 然后,我在AppDelegate中尝试了以下代码:

id currentController = [[[[self window] rootViewController] navigationController] visibleViewController];
[currentController performSegueWithIdentifier:@"settingsSeque" sender:nil];
唐;无论如何,我不认为这是最好的,因为只有rootViewController具有所需的所有序列,并且可能不是visibleViewController,而是一步一个脚印

有了这一点,我唯一看到的是信息,而不是行动:

对UINavigationController:0xb428e00的开始/结束外观转换的调用不平衡


我现在花了几个小时的时间试图解决这个问题,但我意识到,回到传统的独立XIB文件可能更好。…

我用这个问题中给出的答案解决了这个问题:

我试图得到导航控制器,但这是零,我没有意识到这一点。 我的导航控制器是rootViewController,所以这也是NavigationController


将rootViewController强制转换为NavigationController并调用“visibleViewController”之后效果很好

我个人认为故事板是一个巨大的痛苦,在具有复杂导航流程的应用程序中不可用。我会看一下这些利弊分析:听起来你是想通过回拨应用程序代理从应用程序中的任何位置执行一个序列?segue属于导航控制器还是物品控制器?segue当前位于rootviewcontroller中,它也是调用时该点的可见视图。但它似乎不起作用。我喜欢故事板,因为如果清晰的概述和原型表格单元格。但也许我应该决定称之为损失,并恢复我的更改。一个微不足道的突破。你直接调用导航控制器icm序列图像板?序列图像板很好,因为它们为你提供了很好的应用程序概述和其他一些很好的功能,但在尝试进行自定义操作时很快就会成为一种痛苦。从错误中,听起来您的segue被激活了,但是导航控制器被告知在它完成之前执行另一个转换。也许在SettingsGue控制器中放置一些断点,看看它是否被正确地分割。prepareforsgue:(UIStoryboardSegue*)分段发送方:(id)发送方
id currentController = [[[[self window] rootViewController] navigationController] visibleViewController];
[currentController performSegueWithIdentifier:@"settingsSeque" sender:nil];