UIViewController不显示在iOS 8中(但在iOS 9中可用)
问题描述:
我正在开发Swift 2中的iOS应用程序,并且我遇到了一个我无法弄清的问题,我认为它可能是一个错误。UIViewController不显示在iOS 8中(但在iOS 9中可用)
当我在iOS 9中运行应用程序时没有问题,但是当我在iOS 8中调试它时,会发生以下情况:通知回调后,我调用prepareforsegue(标识符),标识符正常,它进入ViewDidLoad新的屏幕,但它永远不会显示它。
下面是代码:
在RegisterData.swift:
func normalRegisterOk(){
performSegueWithIdentifier("userRegisteredSegue", sender: self)
}
要说明的是SEGUE标识符存在,这里有2个截图故事板: screenshot1 screenshot2
贯通进入后normalRegisterOk并调用performSegueWithIdentifier,它确实进入相应场景的视图控制器,我在viewDidLoad中放置了一个断点和viewWillAppear并进入他们两个。
我不明白的是为什么这个场景不显示在iOS 8中,并且显示在iOS 9中。这个场景只有一个标签和一个ScrollView。有没有人知道这个问题会是什么?为iOS 9引入了不支持iOS 8的新功能吗?
感谢
答
这是因为认为还没有准备好,把它在viewDidAppear
或viewDidLayoutSubviews
答
由于Mitley的答案,我意识到,它从未进入viewDidAppear因此我开始调试,我意识到,我在viewDidLayoutSubviews中调用一个函数,我不知道为什么它被称为无限次创建一个无法循环,这是没有让屏幕显示。我仍然不知道为什么会发生这种情况在iOS8但不是iOS9,但问题解决了我将此调用移动到viewDidLoad