释放并重新分配MKMapView

时间:2013-12-27 13:16:06

标签: ios objective-c mkmapview dealloc memory-management

我有一个导航视图控制器,其中许多子VC都有地图。如果我在n个视图中导航,我将始终在内存中分配n-1个映射。 我的想法是每次视图控制器消失时释放一个地图,并在它再次出现时重新分配它。

然而,它们是使用故事板进行布局的,并且它们的框架会根据设备方向而改变,因为我正在使用约束。这样,当VC第一次加载时,它就会出现在故事​​板上。但是当我解除分配并且必须重新分配时,我不知道如何正确设置框架,或者如何正确添加约束。

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

您需要阅读以编程方式创建约束的内容。在解除分配之前,可以使用调试器在地图视图上记录约束,然后在重新添加地图时编写代码以重新创建这些约束。

答案 1 :(得分:0)

您必须读取属性,如用户位置和其他属性,并在设置为nil之前保存它,当您返回时,请在viewWillAppear中检查此对象,如

if(!mapView) {
  allocate here and set the saved values
}