1

我一直对此争论不休,将某种组件制作为 UIViewController 而不是视图的理由是什么?我一直假设每个屏幕有 1 个视图控制器,但如果您使用的是导航视图控制器或类似的东西,则例外

4

2 回答 2

3

UIViewController当您需要一个完整的视图控制器时,您可以创建一个类。当您创建某种“小部件”时,您将创建一个UIView将添加到父视图(例如视图控制器的视图)的“小部件”。

将视图控制器视为“屏幕”。这个视图控制器代表整个屏幕。它的主视图可以添加很多子视图。控制器负责从视图访问数据和协调事件并向视图提供数据。

一个按钮是视图。表就是视图。图像是视图。但是视图控制器将所有这些视图组合在一起并将它们连接在一起。

于 2013-04-22T22:43:30.343 回答
2

您的问题与 MVC 模式以及如何分离控制器和视图部分非常相关。一个屏幕的一个视图控制器通常是有意义的,我记得以前它是在苹果指南中建议的,现在它已经改变了,但在大多数情况下仍然有效。

iOS 视图库非常全面,我通常不需要创建自定义视图,而是自定义视图控制器。因为在遵循 MVC 模式的应用程序中,viewcontroller 是与视图和数据(模型)交互的中间人,所以您的视图不应直接连接到您的模型,这在很大程度上限制了它的功能。以这种方式考虑一下通用 ios 视图库,如果它不需要包含复杂逻辑(进行计算,与其他视图或对象交互),则您的新类应该与其他控件(例如 uibutton、uiswitch、uitableview)一起驻留将用户的交互通知给控制器就足够了。

我的自定义视图的典型用法是当我需要组合 uiviews(即许多网页中的内容滑块,imdb 中电影页面中的 10 个评级星)并且需要不同的表示形式(即表示饼图中的一些数据或改进的进度条等)时但除此之外,我几乎总是选择自定义视图控制器。

于 2013-04-22T23:33:09.057 回答