无法从 App Delegate 呈现视图控制器

Posted

技术标签:

【中文标题】无法从 App Delegate 呈现视图控制器【英文标题】:Cannot Present View Controller From App Delegate 【发布时间】:2013-10-30 16:59:16 【问题描述】:

我需要从 App Delegate 中展示视图控制器,我通过以下代码做到了:

MyViewController *controller = [[MyViewController alloc] init];
[self.window.rootViewController presentViewController:controller animated:YES completion:NULL];

应用程序显示黑屏。我该怎么做?

【问题讨论】:

请澄清。你的目标是在现有的根视图控制器上呈现这个新的视图控制器,还是希望这个视图控制器成为根控制器? MyViewController 是全部在代码中完成的,还是来自故事板或 xib? 我猜rootViewController 目前也为零(考虑到黑屏)? 【参考方案1】:

您需要将窗口的 RootViewController 设置为:

MyViewController *controller = [[MyViewController alloc] init];

[self.window setRootViewController:controller];

【讨论】:

问题不是 100% 清楚,但目标可能是在当前根视图控制器上呈现这个新视图控制器。 是的。我不确定这个问题,但我认为需要直接将 MyViewController 设置为窗口的 rootviewcontroller。 你怎么知道的?

以上是关于无法从 App Delegate 呈现视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

iOS 如何告诉 App Delegate 从当前视图呈现新视图

如何从app delegate访问NSViewController?

如何从我的视图控制器引用我的 App Delegate 中的 managedObjectContext?

使用 App Delegate 访问通过 Storyboard 创建的视图控制器

从 App Delegate 打开导航控制器

来自应用委托的 presentModalViewController