gpt4 book ai didi

ios - 尝试在 View 不在窗口层次结构中的 UIViewController 上呈现 UIViewController

转载 作者:行者123 更新时间:2023-11-30 11:06:12 29 4
gpt4 key购买 nike

刚开始使用 Xcode 4.5,我在控制台中收到此错误:

Warning: Attempt to present < finishViewController: 0x1e56e0a0 > on < ViewController: 0x1ec3e000> whose view is not in the window hierarchy!

View 仍在呈现,应用程序中的所有内容都工作正常。这是 iOS 6 中的新功能吗?

这是我用来在 View 之间更改的代码:

UIStoryboard *storyboard = self.storyboard;
finishViewController *finished =
[storyboard instantiateViewControllerWithIdentifier:@"finishViewController"];

[self presentViewController:finished animated:NO completion:NULL];

最佳答案

你从哪里调用这个方法?我遇到了一个问题,我试图在 viewDidLoad 方法中呈现模态视图 Controller 。我的解决方案是将此调用移至 viewDidAppear: 方法。

我的假设是, View Controller 的 View 在加载时不在窗口的 View 层次结构中(当viewDidLoad 消息已发送),但在呈现后(当发送 viewDidAppear: 消息时),它位于窗口层次结构中。

<小时/>

注意

如果您确实在 viewDidAppear: 中调用 presentViewController:animated:completion:,您可能会遇到一个问题,即每当 View Controller 的 View 出现(这是有道理的!),因此呈现的模态视图 Controller 永远不会消失......

也许这不是呈现模态视图 Controller 的最佳位置,或者可能需要保留一些额外的状态,以允许呈现 View Controller 决定是否应该立即呈现模态视图 Controller 。

关于ios - 尝试在 View 不在窗口层次结构中的 UIViewController 上呈现 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52692553/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com