大衛的回答可能是最好的,而且是我會怎麼做了少量的控制。你也可以使用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