当前视图控制器和添加子视图控制器导致应用程序冻结

时间:2017-07-11 15:20:21

标签: ios presentviewcontroller

我有AViewController。在A内,我有一个MapViewController个实例。 MapViewControllerA的子视图控制器。

现在当A内的按钮获得TouchUpInside时,我会初始化BViewController。现在B

当初始化BViewController时,我将MapViewController传递给B并存储在B内作为无主变量。

我需要为AB显示相同的地图。在B viewDidLoad内,我将MapViewController添加为B的子视图控制器。

当我按下按钮时,应用会冻结。没有例外,没有崩溃,没有错误日志。

任何人都有任何想法为什么会发生?

我的尝试:

  1. 我尝试使用导航控制器并使用pushViewController方法,结果相同,app冻结
  2. 我尝试在MapViewController B内添加ViewWillAppear作为孩子,同样的结果,应用冻结
  3. 我尝试在MapViewController B内将ViewDidAppear作为孩子添加,不再冻结,但地图根本不存在。
  4. 而不是现在B我尝试将B添加为A的childViewController,结果相同,应用冻结
  5. 我查看了有关在主线程上运行的所有说明。
  6. 我尝试在mapViewController之前移除A作为孩子B,同样的结果,app冻结。
  7. 我尝试在完成时将mapViewController作为子项添加B,同样的结果,应用冻结

1 个答案:

答案 0 :(得分:2)

这可能是一个更好的结构。当您从A内容切换到B内容时,您可以移动/调整所需内容的大小...并且因为它们将是您的“主”视图的单独子视图,所以如果您界面将受益于该布局:

enter image description here