Ios ViewController模式演示文稿未出现

Ios ViewController模式演示文稿未出现,ios,uiviewcontroller,uikit,modalviewcontroller,Ios,Uiviewcontroller,Uikit,Modalviewcontroller,我有一个视图控制器,它是窗口根视图控制器的子视图控制器。该子视图控制器有一个表视图,当我选择一行时,它会告诉父视图控制器以模态方式显示视图控制器。但是,模式视图控制器从未出现。我创建了一个简单的测试视图控制器,它只打印viewDidLoad和viewwillbeen。我注意到,当我调用parentVC.present(testVC,animated:true,completion:nil)时,viewDidLoad运行,但viewwillbeen不运行视图将出现只有在我以某种方式与UI交互时才被

我有一个视图控制器,它是窗口根视图控制器的子视图控制器。该子视图控制器有一个表视图,当我选择一行时,它会告诉父视图控制器以模态方式显示视图控制器。但是,模式视图控制器从未出现。我创建了一个简单的测试视图控制器,它只打印
viewDidLoad
viewwillbeen
。我注意到,当我调用
parentVC.present(testVC,animated:true,completion:nil)
时,
viewDidLoad
运行,但
viewwillbeen
不运行<代码>视图将出现只有在我以某种方式与UI交互时才被调用。无论是点击、平移、滚动还是其他方式

我花了几个小时试着调试这个。看起来主队列并没有被阻塞,我已经将问题简化为赤裸裸的问题。在我再次与UI交互之前,不会调用模式显示的视图控制器的
视图


什么可能导致这种症状?

在评论中,您提到您正在用

let vc = TestVC()
其中,
TestVC
可能是一个(大部分为空)
UIViewController
子类

视图控制器需要通过情节提要场景(使用
instantialeviewcontroller
)、NIB或(在极少数情况下)在
loadView
中创建的视图(不应与
viewDidLoad
混淆)创建视图

我建议创建一个情节提要场景(假设您使用的是情节提要),给它一个情节提要ID,然后使用:

但是仅仅拥有一个名为
TestVC
UIViewController
子类并用
TestVC()
实例化它是行不通的



在我们的讨论中,您说过您希望以编程方式完成此操作,而不需要NIB或故事板。如果是,请使用。请参阅以获取示例。

在注释中,您提到正在使用

let vc = TestVC()
其中,
TestVC
可能是一个(大部分为空)
UIViewController
子类

视图控制器需要通过情节提要场景(使用
instantialeviewcontroller
)、NIB或(在极少数情况下)在
loadView
中创建的视图(不应与
viewDidLoad
混淆)创建视图

我建议创建一个情节提要场景(假设您使用的是情节提要),给它一个情节提要ID,然后使用:

但是仅仅拥有一个名为
TestVC
UIViewController
子类并用
TestVC()
实例化它是行不通的



在我们的讨论中,您说过您希望以编程方式完成此操作,而不需要NIB或故事板。如果是,请使用。例如,请参阅。

我们是否可以在没有代码的情况下猜出这一点?您可能已经在调度异步队列中设置了这个
parentVC.present(testVC,动画:true,完成:nil)
。分享你的代码。@Rob main queue是我想到并检查的第一件事。。我毫不例外地提出了这一主张。它在主线程上。@Rob no.no.just:``func present(){dispatchpredition(条件:.onQueue(.main))让vc=TestVC()present(vc,动画:true,完成:nil)}``no。我想知道本地
vc
是否超出范围?虽然稍后当我与屏幕交互时,
视图将出现
被调用,因此
vc
显然没有被释放。我们应该能够在没有代码的情况下猜到这一点吗?您可能已经在调度异步队列中设置了这个
parentVC.present(testVC,animated:true,completion:nil)
。分享你的代码。@Rob main queue是我想到并检查的第一件事。。我毫不例外地提出了这一主张。它在主线程上。@Rob no.no.just:``func present(){dispatchpredition(条件:.onQueue(.main))让vc=TestVC()present(vc,动画:true,完成:nil)}``no。我想知道本地
vc
是否超出范围?虽然稍后当我与屏幕交互时,
viewwillbeen
被调用,因此
vc
显然没有被释放。