21 EKİM 2009, ÇARŞAMBA
NSArray otherButtonTitles belirtmek için kullanılır?
UİAlertSheet yapıcı varg bir liste olarak otherButtonTitles bir parametre alır. Diğer düğme ünvanlar bir NSArray yerine gelen istiyorum. Bu mümkün mü?
yani yapmamız gereken bu
id alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: button1Title, button2Title, nil];
Ama çalışma zamanında kullanılabilir düğmeler listesini üreten ben olduğuma göre, Ben böyle bir şey istiyorum:
id alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: otherButtonTitles];
Şimdi, Madde 1, 2 ve 3 öğeler için initWithTitle:
için ayrı bir çağrı olması gerekir diye düşünüyorum. Bu gibi:
if ( [titles count] == 1 ) {
alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: [titles objectAtIndex: 0], nil];
} else if ( [titles count] == 2) {
alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: [titles objectAtIndex: 0], [titles objectAtIndex: 1], nil];
} else {
// and so on
}
Bu kuralların ihlali var, ama aslında en fazla üç düğme var bu yana makul olabilir. Bunu nasıl bertaraf edebilirim?
CEVAP
21 EKİM 2009, ÇARŞAMBA
Bu UİActionSheet başlatmak düğmeleri eklemek yerine, NSArray geçer addButtonWithTitle yöntemi bir for döngüsü kullanarak onları eklemeyi deneyin.
UIActionSheet *alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: nil];
for( NSString *title in titles)
[alert addButtonWithTitle:title];
Bunu Paylaş:
Nasıl yansıması genel bir Yöntemi çağı...
Geçişlerini için Dinlenmek nedir ve na...
Nasıl NSArray için NSMutableArray dönü...
Nasıl bir NSArray alfabetik olarak sır...
Temel veri yapıları Redis ne için kull...