刚开始使用Xcode4.5,我在控制台收到以下错误:

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

视图仍在显示中,应用程序中的一切都运行得很好.这是iOS6的新功能吗?

这是我用来在视图之间切换的代码:

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

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

推荐答案

您从哪里调用此方法?我在try 呈现viewDidLoad方法中的模式视图控制器时遇到了一个问题.我的解决方案是将此调用移到viewDidAppear:方法.

我的假设是,视图控制器的视图is not在窗口的视图层次 struct 中已加载(当发送viewDidLoad消息时),但它在显示(当发送viewDidAppear:消息时)后仍在窗口层次 struct 中.


Caution

如果在viewDidAppear:中调用presentViewController:animated:completion:,则可能会遇到这样一个问题:每当视图控制器的视图出现时,模态视图控制器总是出现(这很有意义!)所以呈现的模态视图控制器永远不会消失...

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

Ios相关问答推荐

无法在fastlane和github操作中从react-native 应用程序构建ios

带有RadStudio 11.3/12的Mac Mini M2(Sonoma 14.2.1)上的PAServer-测试连接按钮有效,但部署不起作用

在TVOS中访问SWIFT中的objc++函数时发送给类的无法识别的 Select 符

在滚动视图中固定页眉,但在页眉上方嵌入元素

如何解决错误 HE0004:无法在 Visual Studio 2022 中加载框架ContentDeliveryServices

如何将 -fobjc-arc-exceptions 标志正确添加到 XCode 中?

SwiftUI 中的描边图像边框

Flutter iOS 构建失败并在 ios/Runner/AppDelegate.swift 中出现多个错误

如何让替换视图淡入旧视图而不是交叉淡入淡出?

无法为 Flutter 项目构建 ipa [CocoaPods 找不到 pod "GoogleAppMeasurement" 的兼容版本:]

访问未定义的 stage_in 金属着色器参数

在iOS7半透明导航栏中获取正确的 colored颜色

检测 iPhone/iPad/iPod touch 的 colored颜色 ?

在代码生成的 UIView 上绘制 UIBezierPath

如果已安装,则重定向到应用程序,否则重定向到 App Store

如何识别导航堆栈中的前一个视图控制器

iOS SDK - 以编程方式生成 PDF 文件

文件是为存档而构建的,它不是被链接的体系 struct (i386)

找不到开发者磁盘映像

UIGestureRecognizer 阻止子视图处理touch 事件