小编典典

尝试在其视图不在窗口层次结构中的 UIViewController 上呈现 UIViewController

all

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

警告:尝试在视图不在窗口层次结构中的 上呈现

该视图仍在显示中,应用程序中的所有内容都运行良好。这是 iOS 6 中的新功能吗?

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

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

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

阅读 103

收藏
2022-03-04

共1个答案

小编典典

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

我的假设是视图控制器的视图在加载时(发送消息时) 不在 窗口的视图层次结构中,但在呈现后(发送消息时)
在窗口层次结构中.viewDidLoad __viewDidAppear:


警告

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

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

2022-03-04