目标 C:如何从 appdelegate 呈现模态视图控制器?

Posted

技术标签:

【中文标题】目标 C:如何从 appdelegate 呈现模态视图控制器?【英文标题】:Objective C: How to present modal view controller from appdelegate? 【发布时间】:2011-08-15 16:06:23 【问题描述】:

我在我的应用程序的 appdelegate 中。如何在“didfinishlaunching”方法中添加模态视图控制器?

我尝试了以下方法,但没有成功

SomeViewController *vc = [[SomeViewController alloc]init];
[self.tabController.navigationController presentModalViewController:vc animated:NO]; 

编辑: 我将实现更改为以下

self.tabController.selectedViewController 
= [self.tabController.viewControllers objectAtIndex:0];
SomeViewController *vc = [[SomeViewController alloc]init];
[self.tabController.selectedViewController presentModalViewController:vc animated:NO];

我检查了“选定的视图控制器”不为空......但是我仍然无法获得所需的输出。我有什么遗漏吗?

【问题讨论】:

当您尝试上面的代码时,您在调试器中看到什么了吗?如果有,那里有什么? 【参考方案1】:

假设 tabController 和 navigationController 不为 nil,applicationDidFinishLaunching 可能会过早显示模态视图控制器。

    确保在设置窗口键并使其可见之后放置该代码。 [self.window makeKeyAndVisible]; 如果这不起作用,请尝试监听该窗口的 UIWindowDidBecomeKeyNotification 您可以尝试使用 performSelector:withObject:afterDelay: 将该模式的呈现延迟几秒钟

【讨论】:

连同upvote,向您的回答致敬。它节省了我很多时间来让它与我目前正在考虑的其他逻辑一起工作。 [self.window makeKeyAndVisible];像魅力一样工作

以上是关于目标 C:如何从 appdelegate 呈现模态视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 appDelegate 呈现 UIAlertView

错误 - 目标 C - '应用程序试图以模态方式呈现活动控制器 <splitViewDetailViewController:'

使用故事板从应用程序委托呈现模态视图控制器

我如何从目标 c 代码中获取 Swift AppDelegate 的参考

应用程序试图在目标 <UIApplicationRotationFollowingController: 0x100c75280> 上呈现一个 nil 模态视图控制器

iOS:如何让 ViewController A 模态呈现 B,然后让 B 直接关闭/转换到模态呈现的 C?