Upvoters:如果你也看到过这个问题,你可以告诉我吗?
当我尝试从某个场景上的按钮模拟启动视图控制器时,我看到的问题大约每15次发生一次。
这是通过iOS 9.2.1和XCode 7.2完成的,但不清楚它发生在哪个版本上。改变iOS版本并不容易。
症状如下:
- 目标视图控制器在手机上不可见。相反,顶部条(带有载体的条)变黑,有时它会闪烁,因此整个屏幕都是黑色的。启动视图控制器是可见的,但没有响应。
- 当发生这种情况时,我会进入XCode屏幕并查看调试。值得注意的是,这显示了目标屏幕,几乎就像它应该看起来一样。唯一的区别是其中一个视图没有完成其drawRect,其中一个视图看起来都是斑点。但当然它根本不符合手机的显示效果。
- 目标屏幕上的取消按钮似乎仍然有效,因为当我按下应该按的位置时,该应用程序将继续运行。如果我尝试使用按钮重新启动屏幕,它再次无法工作。因此,一旦发生这种情况,屏幕就会停止为该会话工作,并且应用程序需要被杀死并重新启动。
醇>
没有太多提示,但这些信息可能有所帮助:
- 包含目标屏幕视图的3个滚动视图。所有三个子视图都有自己的drawRect。事实证明,当错误发生时,不会调用其中一个drawRects,导致显示灰色背景。有斑点的视图确实会运行,但我不知道为什么它在查看调试中看起来像。
- XCode中没有警告。没有关于NSLayout约束或表示重叠的内容。
- 在prepareForSegue函数的目标视图控制器上设置了两个字段。
- 通过故事板从时间按钮启动segue。没有丢失或额外的插座,并且正确命名准备功能以捕获它。
该问题是零星的,但如果您连续多次启动/取消,则会可靠地发生。
以下是屏幕抓取。我不会告诉你黑屏。它只是黑色的载体和时间。