【发布时间】:2018-01-17 11:38:37
【问题描述】:
我有一个视图(在我的例子中是一个 MGLMapview : mapboxView),它显示在我的第一个 VC 中。我希望我的第二个 VC 显示相同的视图。
所以从 VC1 到 VC2 我做了:
self.VC2.mapView = self.mapView
self.navigationController?.pushViewController(self.VC2, animated: true)
然后在VC2的viewDidLoad中:
view.addSubview(mapView)
我的问题是什么都没有出现。 但是,当我在第二个 VC 中打印 mapView 的大小和高度时,它不为零。
我错过了什么吗?
感谢您的帮助
【问题讨论】:
-
您是如何创建视图的?在任何情况下,最有可能的问题是您需要将视图本身复制到您的其他 VC,因为通过调用
view.addSubview(mapView)您只显示mapView,但是当您实际推送VC2时,VC1可能会得到从内存中卸载,因此mapView对象本身也可能被破坏。 -
你可以推送同一个视图控制器而不是创建一个新的。
self.navigationController?.pushViewController(self.VC1, animated: true) -
你如何传递你的地图视图?是为segue做准备还是什么?您是如何将 vc1 连接到要推送的 vc2 实例的?您需要查找相对于 vc2 视图的地图视图的矩形。请提供更多代码。
-
在
view.addSubview(mapView)之后在VC2中添加self.mapView?.translatesAutoresizingMaskIntoConstraints = true。这将解决问题 -
@Priya 没用。但验证答案解释了原因
标签: ios swift uiview uikit mapbox