从AppDelegate触发segue以弹出StoryBoard中的视图

时间:2013-07-16 20:17:01

标签: iphone ios cocoa-touch storyboard uistoryboard

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

E.g。

DOArticleViewController *articleView = [[DOArticleViewController alloc] initWithArticle:article notification: notification nibName:@"DOArticleViewController" bundle:nil];
[[self navigationController] pushViewController:articleView animated:YES];  

但是现在有了故事板它再也不起作用了。 然后我在AppDelegate中尝试了以下代码:

id currentController = [[[[self window] rootViewController] navigationController] visibleViewController];
[currentController performSegueWithIdentifier:@"settingsSeque" sender:nil];

不要认为这是最好的,因为只有rootViewController具有所需的所有seque,并且可能不是visibleViewController,而是一次一步。

有了这个,我唯一看到的就是消息而不是行动:

  

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

我现在花了几个小时试图让这个工作起作用,但我意识到回到传统的独立XIB文件可能会更好....

1 个答案:

答案 0 :(得分:0)

我用这个问题给出的答案解决了:ios: Accessing a navigation controller from app delegate

我试图获得导航控制器,但这是零,我没有意识到。 我的导航控制器是rootViewController,因此它也是NavigationController。

将rootViewController转换为NavigationController并调用'visibleViewController'之后工作正常!