显示视图控制器并添加 Child 视图控制器导致应用冻结
Present View Controller and Add Child View Controller Cause App Freeze
我有AViewController
。在 A
中,我有一个 MapViewController
实例。 MapViewController
是 A
的 Child 视图控制器。
现在,当 A
中的按钮得到 TouchUpInside
时,我会初始化一个 BViewController
。并出席 B
。
当初始化 BViewController
时,我将 MapViewController
传递给 B
并作为无主变量存储在 B
中。
我需要为 A
和 B
显示同一张地图。在 B
的 viewDidLoad
中,我将 MapViewController
添加为 Child B
的视图控制器。
当我按下按钮时应用程序冻结。没有异常,没有崩溃,没有错误日志。
有人知道为什么会这样吗?
我的尝试:
- 我尝试使用导航控制器并使用 pushViewController 方法,结果相同,应用冻结
- 我尝试将
MapViewController
添加为 child inside B
at ViewWillAppear
,结果相同,应用冻结
- 我尝试将
MapViewController
添加为 child inside B
at ViewDidAppear
,不再冻结,但地图根本不存在。
- 我尝试将
B
添加为 A
的 childViewController,而不是现在的 B
,结果相同,应用程序冻结
- 我在主线程上检查了 运行 上的所有说明。
- 我试图在
A
中将 mapViewController
删除为 child 之前出现 B
,结果相同,应用程序冻结。
- 我尝试在完成块
B
中添加 mapViewController
作为 child,结果相同,应用程序冻结
这可能是一个更好的结构。当您从 A
内容切换到 B
内容时,您可以根据需要移动/调整元素的大小...并且由于它们将是您的 "main" 视图的单独子视图,因此它们可以重叠如果您的界面将从该布局中受益:
我有AViewController
。在 A
中,我有一个 MapViewController
实例。 MapViewController
是 A
的 Child 视图控制器。
现在,当 A
中的按钮得到 TouchUpInside
时,我会初始化一个 BViewController
。并出席 B
。
当初始化 BViewController
时,我将 MapViewController
传递给 B
并作为无主变量存储在 B
中。
我需要为 A
和 B
显示同一张地图。在 B
的 viewDidLoad
中,我将 MapViewController
添加为 Child B
的视图控制器。
当我按下按钮时应用程序冻结。没有异常,没有崩溃,没有错误日志。
有人知道为什么会这样吗?
我的尝试:
- 我尝试使用导航控制器并使用 pushViewController 方法,结果相同,应用冻结
- 我尝试将
MapViewController
添加为 child insideB
atViewWillAppear
,结果相同,应用冻结 - 我尝试将
MapViewController
添加为 child insideB
atViewDidAppear
,不再冻结,但地图根本不存在。 - 我尝试将
B
添加为A
的 childViewController,而不是现在的B
,结果相同,应用程序冻结 - 我在主线程上检查了 运行 上的所有说明。
- 我试图在
A
中将mapViewController
删除为 child 之前出现B
,结果相同,应用程序冻结。 - 我尝试在完成块
B
中添加mapViewController
作为 child,结果相同,应用程序冻结
这可能是一个更好的结构。当您从 A
内容切换到 B
内容时,您可以根据需要移动/调整元素的大小...并且由于它们将是您的 "main" 视图的单独子视图,因此它们可以重叠如果您的界面将从该布局中受益: