eri*_*son 1 iphone objective-c interface-builder ipad ios
如果这是一个简单的问题,我很抱歉,但我一直无法找到足够的解决方案而且我让自己有点疯狂:P
我在各种视图上都有一个带有多个按钮(40-50)的应用程序,并且应该根据按下哪个按钮构建一个带有多个条目的字典.
(例如,如果按下按钮27,我将在viewController中构建一个Dict:名称 - > John Smith地址 - > 1无限循环年龄 - > 99)
显然,编写特定于每个按钮的操作是错误的.
我想做的是继承UIButton(继续上面的例子),将Name,Address和Age作为实例变量添加到我的自定义Button中,并在使用init实例化按钮时设置每个实例变量:然后,当按下该按钮时,我可以拥有一个由所有按钮调用的SINGLE buildDict:(id)发送者动作,并简单地用sender.Name等填充字典......
我的问题是:我可以在Interface Builder中的属性检查器中添加字段来设置这些值吗?如果这不可能,我在哪里可以找到按钮实例,以便我可以以编程方式设置这些值?
您不希望将属于模型的数据放在视图中.这听起来也非常复杂.
在界面构建器中插入数据?如果我不需要为我的视图编辑标签并且您想要编辑其中的数据,我会感到很幸运吗?
说真的,做对了.创建一个NSArray.40个按钮的40个对象.使用plist编辑器创建地址列表并将plist文件加载到代码中.这是执行此操作的最快速,最干净的方法.
给每个按钮一个标签.(如果你必须添加40个按钮,我会在代码中完成它)并将它们连接到IBAction.我建议你给第一个项目标签1000.没有标签的按钮就像一个标签为0的按钮,你不想要这个.如果你从按钮到数组索引,你不想减去1.
- (IBAction)buttonPressed:(UIButton *)sender {
// remember? tag 1000 equals index 0.
NSUInteger index = sender.tag - 1000;
NSDictionary *object = [self.data objectAtIndex:index];
// do whatever you want
}
Run Code Online (Sandbox Code Playgroud)
不需要子类化任何东西.无需违反模型 - 视图 - 控制器概念.
| 归档时间: |
|
| 查看次数: |
6660 次 |
| 最近记录: |