在iOS中使用BIND框架进行双向数据绑定

时间:2016-01-10 14:04:37

标签: ios objective-c mvvm data-binding

我正在尝试使用BIND框架将UITableView绑定到可以编辑内容的UITextfield。

我正在努力实现与在Mac OSX中完成绑定的方式非常相似的东西。使用视图绑定数据源,让用户进行更改,保存后验证后保存数据。

通常,这是通过订阅委托或从textfield观察valueChanged事件来完成的。我想尝试一种新方法来减少这种情况,这就是我遇到BIND framework的方式。

它鼓励使用通常在.NET中看到的MVVM框架。绑定就像使用视图组件映射模型的键路径一样简单。但我发现很难实现双向绑定,从模型到组件再返回。

BINDINGS(MHPersonNameViewModel,
         BINDViewModel(name, ~>, textLabel.text),
         BINDViewModel(ID, ~>, detailTextLabel.text),
         nil);

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

这是一个迟到的答案,甚至不是你问题的答案,但我希望它仍然有用。

看看https://github.com/mutech/aka-ios-beacon。这是一个绑定框架,它集成到Interface Builder中(默认情况下)使用视图控制器作为根视图模型。

您不必编写任何代码来初始化绑定。在您的示例中,假设视图控制器具有(KVO兼容)属性" name"和" ID",你只需要设置UILabel"文本绑定" name和ID的属性(在界面构建器的属性面板中找到它们,并为视图控制器启用绑定(也在属性面板中)。

这应该是建立绑定所需要做的全部工作。

在AKABeacon最高0.1.1的版本中,"启用绑定"还没有。在这种情况下,您的视图控制器必须从AKAFormViewController继承。