如何解决将UIView或结构数组传递给UIViewController
为了兑现MVC的承诺,我对是否创建结构有疑问。 现在,将一组海关UIView传递到一个ViewController,以对其进行排列。
自定义UIView看起来像这样
class TopView: UIView {
private var text: String
private var question: String
private var explanation: String
required init(text: string,...) {
self.text = text
...
}
....
}
然后将这些UIView作为数组传递给View Controller,内部的函数将对其进行排列。因此,许多这样的UIView数组被存储
let derivative: [UIView] = [TopView(text: "",....),MainBodyView(text:"",...),BottomView(text:"",...)
]
因此,为了拥有清晰,良好的代码结构,我想知道是否最好创建包含所有这些信息的结构以及在ViewController中提取信息并将其放入视图的函数。还是有更好的方法呢?
解决方法
UIViews数组将始终包含一个TopView,MainBodyView和一个BottomView。唯一的区别是MainBodyView的数量。例如,可以有10到5个MainBodyViews。
传递视图非常混乱,完全违反了MVC。听起来您真的想在这里传递的是自定义配置结构的实例。例如(这是最小的,只需根据需要展开即可):
{{1}}
现在传递数据,让目标视图控制器担心这对视图的意义。
这是有道理的,因为您(即第一个正在组装此数据并将其传递给目标视图控制器的视图控制器)不负责目标视图控制器的视图-您无需了解任何有关它们或接触它们的信息以任何方式。另外,通过这种方式,如果目标视图控制器使用情节提要来实例化实际视图,则没问题,因为您对此不了解(并且理所当然,因为这与您无关)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。