【问题标题】:Can I link UIView controls (e.g. UILabel, UIPickerView) direct to model instance variables?我可以将 UIView 控件(例如 UILabel、UIPickerView)直接链接到模型实例变量吗?
【发布时间】:2011-04-06 12:23:13
【问题描述】:

背景 - 通常使用基本的 UIViewControllers 我了解如何创建标记为 IBOutlet 的实例变量,并使用 Interface Builder 将这些变量链接到实际的视图控件。

问题 - 如果我将模型对象传递给 UIViewController,有没有办法将视图控件(例如 UILabel、UIPickerView 等)直接链接到模型变量(即自定义类中的有效实例变量)?

这样,一旦用户更改 UI 控件,它就会立即更新模型属性。假设您已将模型作为传递引用传递给控制器​​,因此您已自动更新了父级的值。

我认为这将避免 (a) 在初始化时转换模型值以设置 UI 组件,以及 (b) 在完成视图时必须手动更新 UI 组件中的模型变量。

【问题讨论】:

  • 您希望能够将自定义对象用作您的视图控制器的 IBOutlet 吗?

标签: iphone uiview uiviewcontroller interface-builder iboutlet


【解决方案1】:

与 onnoweb 状态一样,我认为您无法自动执行此操作 - 主要是因为 Obj-C 永远不会知道您实际在寻找什么类型的变量。但是,您可以(我强调这一点)通过让您的模型将视图作为属性来控制您的视图。

考虑到 Obj-C 是基于 MVC 架构构建的,但我不建议这样做。让您的控制器完成工作。如果您正确设置触发器,这应该不是什么大问题。

【讨论】:

  • 谢谢 - 所以重新“让你的控制器完成工作。如果你正确设置触发器,这应该不是一个大问题” - 你指的是在你输入时手动设置 UI 控件视图,并在它们更改后手动更新模型值?
  • 是的,我认为这是一个不错的解决方案,即使考虑到您的问题
【解决方案2】:

我觉得 Obj-C 没有属性绑定的概念。

【讨论】:

    猜你喜欢
    • 2012-03-07
    • 1970-01-01
    • 2018-12-15
    • 2015-06-22
    • 2020-09-09
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 2021-08-27
    相关资源
    最近更新 更多