gpt4 book ai didi

ios - iOS 中的模型- View - Controller

转载 作者:行者123 更新时间:2023-11-29 12:43:41 26 4
gpt4 key购买 nike

我理解模型- View - Controller 设计模式:存在三个对象,模型、 View 和 Controller ,其中 View 完成所有绘图、接收用户交互并向 Controller 报告。然而,在 iOS 中,你有 UIViewController,它是一个将 View 作为一个对象的 Controller ,所有的绘制和处理都在同一个对象中完成,这不会违反 MVC 模式吗?你不应该创建一个单独的 UIView 对象并将它链接到一个单独的 Controller 对象吗?

如果有人能帮我解决这个问题就太好了。谢谢!

最佳答案

View 可以有 subview ,因此 View Controller 可以向其主视图添加 subview ,如下所示:

[self.view addSubview:[[MyNSViewSubclass alloc] initWith...]];

尽管您通常会使用 InterfaceBuilder 执行此操作。

因此,一个 View Controller 负责其主视图 (.view)及其 subview

每个 View 都实现了 -drawRect: 方法, Controller 不应该知道它的 View 的绘制。

在某些情况下,您还有多个 View Controller (想想 UINavigationController 的导航堆栈),每个 View Controller 都有自己的主视图。

更新

这取决于。 View 当然也可以执行 [self addSubview:...];。如果您想以编程方式构建界面,我会从 View Controller 中执行此操作。如果您设计了一个自定义 View 并且您注意到它可以重用现有 View ,您应该将这些现有 View 作为 subview 添加到您的自定义 View 类中。添加和删​​除顶级 View (我的意思是 View Controller 的 .view 的直接 subview )应该从 View Controller 恕我直言。 (因为 Controller 负责让其 View 代表模型,所以即使它需要添加/删除 subview ,它也应该这样做。)

这取决于。尽可能多地使用 Interface Builder,否则,让常识决定。

关于ios - iOS 中的模型- View - Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24217620/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com