繁体   English   中英

什么是通过包含视图控制器传递数据的好方法

[英]What is a good approach to pass data through containment view controllers

例

我试图将对象的实例从“初始”视图控制器传递到“ item1”和“ item2”。 我想避免对UITabBarController进行子类化,因为这会使包含视图控制器知道“太多”。

除了子类化UITabBarController之外,还有使用情节提要或代码做到这一点的好方法吗?

我想避免对UITabBarController进行子类化,因为这会使包含视图控制器知道“太多”。

您应该子类化,并且您的子类应为此目的实现特定的协议。 因此,包含的VC仅知道该协议,这是适当的,因为它负有直接责任。

我试图将对象的实例从“初始”视图控制器传递到“ item1”和“ item2”。 我想避免对UITabBarController进行子类化,因为这会使包含视图控制器知道“太多”。

这里的问题是您的segue的destinationViewControllerUITabBarController而不是item 1item 2 如果您不想对其进行子类化,这将使您的案例非常困难,因为您无法在初始VC实例与这两项之间直接进行通信。

我的建议确实是要子类化,这是在这种情况下的正确方法(您可能想添加一个指定通信接口的协议)。

其他选项是:

  1. 以某种方式使初始视图控制器可以访问第1项和第2 项的实例(您必须在代码中进行很多此设置,因为Storyboard并不能让您完全在IB中完成所有操作)
  2. 使用NSNotification并将实例作为userInfo传递(不是很优雅,但是可能是解决isse最快的方法)
  3. 将要传递的实例的序列化版本存储在NSUserDefaults并将其加载到项目1项目2中 (可能会产生很多开销)

暂无
暂无

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

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