繁体   English   中英

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

[英]Is it possible to add the same view to two different view controllers?

我收到以下错误消息:

一个视图一次最多只能与一个视图控制器关联!

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

我想将一个Google Map实例添加到Tab View Controller。

我正在将swift4与情节提要一起使用。

如果是典型视图,则应创建一个XIB并将其新实例添加到每个视图。 由于您使用的是Google Maps SDK中的GMSMapView,并且希望在多个标签中使用相同的实例,因此方法会有所不同。

您可以:

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

一个UIView只能与另一个视图关联,因为它只能有一个父视图,该父视图被设置为superView属性。 此外,诸如布局之类的事情都在此视图上设置,并且是相对于其超级视图的,因此在多个Controller中使用同一视图毫无意义。 最好的解决方案是子类化UIView ,然后将自定义类的新实例添加到每个ViewController

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM