Mat*_* H. 8 uiviewcontroller uiview ios
也许这是一个愚蠢的问题,但我在iOS开发过程中多次遇到过这个问题.
有时候我会开发一个我想在多个屏幕上使用的视图组件,所以我决定将其子类化UIView并制作成可以在多个地方使用的东西.
然后,我开始添加功能.也许它需要响应一个NSNotification,或者它应该响应用户触摸.
在某一点上,我开始想知道我是否应该真正创建一个UIViewController子类,并将其作为子ViewController添加到我的UI中.
是否有任何共识在哪些界面之间划清界线UIView,以及何时创建完整UIViewController?
您应该在需要处理或控制数据的任何时候使用控制器。视图应该尽可能愚蠢,不知道它们显示的是什么,而是在哪里显示。您可以轻松地子类化和重用 ViewController。一个很好的例子,假设您需要通过弹出控制器和模式从整个应用程序中的用户检索字符串(或文本)。创建一个通用子类,UIViewController它有一个带有文本字段和按钮的视图。然后,您可以以您需要的任何容量使用此视图及其控制器。在弹出窗口、模态或其他任何地方重用它(通常通过委托将数据传回)。由于您正在处理数据,因此不应使用 UIView 的唯一子类。
根据我的经验,我UIViewControllers更经常地子类化UIViews。如果您只是在谈论容器或在一般应用程序工作流程中重用视图,我有点难以理解。无论哪种方式,它都应该是相同的。
我不能告诉你共识,但这是我的意见:
子类UIView仅当...
UIView子类的一些行为UIViewController。UIViewController在所有其他情况下子类。无论如何,您几乎总是需要一个控制器,用于编写将视图和模型联系在一起的胶水代码,或用于处理用户交互。因此,Apple 在 UIKit 中简化了让控制器完成所有工作并尽可能保持视图“愚蠢”的方式。例如,嵌套控制器以创建复杂的视图层次结构非常简单,而无需具有单个视图子类。
UIView 类参考中UIView标题为“子类化的替代方案”的部分表明子类化不是人们应该做的第一件事。子类化是首选的一个指标是UIViewController 类参考中没有这样的部分:-)UIViewController
| 归档时间: |
|
| 查看次数: |
1410 次 |
| 最近记录: |