gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 07:24:23 25 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:,您可能会遇到一个问题,即模态视图 Controller 总是在任何时候呈现 View Controller 的 View 出现(这是有道理的!)因此呈现的模态视图 Controller 永远不会消失...

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

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

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