大卫的回答可能是最好的,而且是我会怎么做了少量的控制。你也可以使用KVC。
NSArray *myButtons = [NSArray arrayWithObjects:@"b1", @"b2", @"b3", @"b4", nil];
for (NSString *str in myButtons)
{
id cont = [self valueForKey:key] ;
if ([cont isKindOfClass:[UIButton class]]) {
[cont setHidden:YES] ;
}
}
我向您展示这种方法的原因是它可以用来在数据库和控件之间创建“绑定”。想象一下,如果myButtons数组包含DB字段的名称。然后,您可以使用相同的名称在您的控制器中命名您的UI控件。然后,你需要的只是一个简单的for循环,也许一些是KindOfClass测试,将所有的控制数据移动到你的数据库中。这是我的一个项目的一个例子。
NSArray *fn = [AOSConfig sharedInstance].fieldNames ;
for (NSString* name in fn) {
@try {
id uifield = [self valueForKey:name] ;
if ([cont isKindOfClass:[UITextField class]]) {
[aosShotData setValue:[uifield valueForKey:@"text"] forKey:name]
}
}
@catch(NSException *e) {
}
}
这就是将所有的文本数据保存到CoreData管理对象。如果您需要各种数据类型,您需要具有创意。如果数据库在数据类型方面很复杂以控制映射,那么只需将其写入强力文件可能会更好。
我看不到要清理的代码。 – Shoban 2011-03-15 02:49:19
需要更多信息,显示/隐藏它们的逻辑是什么。即如果你只是想隐藏,如果按钮显示(反之亦然),你可以做button.hidden =!button.hidden,这取决于你想要达到什么。 – Rog 2011-03-15 02:50:27