是否可以将相同的视图添加到两个不同的视图控制器?

时间:2017-10-24 06:01:38

标签: ios swift google-maps google-maps-sdk-ios swift4

我收到以下错误消息:

  

视图最多只能与a处的一个视图控制器关联   时间!

是否可以将相同的视图添加到两个不同的视图控制器?

我想将一个Google地图实例添加到标签视图控制器。

我正在使用swift4和故事板。

2 个答案:

答案 0 :(得分:2)

如果它是一个典型的视图,那么你应该创建一个XIB并为每个视图添加一个新的实例。 由于您正在使用Google Maps SDK中的GMSMapView,并且您希望在多个标签页中拥有相同的实例,因此方法会有所不同。

你可以:

  1. 新实例,相同参数: 在每个选项卡中创建一个新实例,其参数设置为与其他选项卡相同。
  2. 移动单个实例: 创建GMSMapView的实例。将其存储在共享属性中。使用addSubview()移动它。基本上在新标签页中使用addSubview()将其从旧标签中删除,然后将其添加到新标签中。

答案 1 :(得分:0)

UIView只能与另一个视图关联,因为它只能有一个父视图,该视图设置为superView属性。此外,在此视图上设置了布局等相关内容,因此在多个控制器中使用相同的视图是没有意义的。 最好的解决方案是子类UIView,然后将自定义类的新实例添加到每个ViewController