刚开始使用 Xcode 4.5,我在控制台中收到此错误:
警告:尝试在视图不在窗口层次结构中的 上呈现 !
该视图仍在显示中,应用程序中的所有内容都运行良好。这是 iOS 6 中的新功能吗?
这是我用来在视图之间更改的代码:
UIStoryboard *storyboard = self.storyboard; finishViewController *finished = [storyboard instantiateViewControllerWithIdentifier:@"finishViewController"]; [self presentViewController:finished animated:NO completion:NULL];
你从哪里调用这个方法?我有一个问题,我试图在该viewDidLoad方法中呈现一个模态视图控制器。我的解决方案是将此调用移至该viewDidAppear:方法。
viewDidLoad
viewDidAppear:
我的假设是视图控制器的视图在加载时(发送消息时) 不在 窗口的视图层次结构中,但在呈现后(发送消息时) 它 在窗口层次结构中.viewDidLoad __viewDidAppear:
警告
如果您确实调用presentViewController:animated:completion:in ,viewDidAppear:您可能会遇到一个问题,即每当视图控制器的视图出现时,总是呈现模态视图控制器(这是有道理的!),因此呈现的模态视图控制器永远不会消失。 .
presentViewController:animated:completion:
也许这不是呈现模态视图控制器的最佳位置,或者可能需要保留一些额外的状态,以允许呈现视图控制器决定是否应该立即呈现模态视图控制器。