修改UIView Outside UIViewController的最佳方法

时间:2016-04-18 10:27:09

标签: ios swift design-patterns uiviewcontroller

我尝试创建一个类 MyViewControllerDesign.swift ,它可以处理所有设计设置,比如配置,修改......并且可以从任何地方调用它。

enter image description here

从MyViewControllerDesign的函数修改在MyUIViewController中创建的UIView的最佳方法是什么?

1 - 应该我将MyUIViewController的上下文传递给hideMyView函数吗?

func hideMyView(context: MyUIViewController){
   context.myView.hidden = true
}

2 - 或者我应该将视图传递给hideMyView函数

func hideMyView(myView: UIView){
   myView.hidden = true
}

...但我必须从startTasks传递它......

func startTasks(myView: UIView){
   ...
   myViewControllerDesign.hideMyView(myView)
   ...
}

3 - 或者我应该在MyUIViewController上让hideMyView函数

最好的方法是什么?是否有设计模式来处理这种情况?

1 个答案:

答案 0 :(得分:0)

设计控制器保持对其管理的视图和/或子视图的引用是有意义的 - 您可以在View Controller中实例化MyViewControllerDesign时执行此操作。同样,您的BackgroundTasks对象可以保留对设计控制器的引用,并根据需要调用相关方法。

这样,View Controller仍然处于流程的中心,并将模型层链接到视图层。