我正在尝试将对象的实例从“初始”视图控制器传递到“item1”和“item2”。我想避免继承UITabBarController
,因为它会使包含视图控制器知道“太多”。
除了子类化UITabBarController
之外,使用故事板或代码还有什么好方法吗?
答案 0 :(得分:1)
我想避免继承UITabBarController,因为它会使包含视图控制器知道“太多”。
您应该是子类,并且您的子类应该为此目的实现特定协议。 Yhen,包含VC只知道该协议,它是合适的,因为它有直接的责任。
答案 1 :(得分:1)
我试图从“初始”视图控制器传递对象的实例 到“item1”和“item2”。我想避免继承 UITabBarController因为它会使包容视图控制器知道 “太多了”。
此处的问题是您的segue destinationViewController
是UITabBarController
而不是第1项或第2项。如果您不想将它子类化,这会使您的情况变得非常困难,因为您无法直接在初始VC 的实例与这两个项目之间进行通信。
我的建议确实是子类,这是在这种情况下正确的方法(你可能想要添加一个指定通信接口的协议)。
其他选项包括:
NSNotification
并将实例作为userInfo
传递(不是非常优雅,但可能是您最快的解决方案)NSUserDefaults
中传递的实例的序列化版本,并将其加载到第1项和第2项中(可能会产生大量开销) )