Verwenden Sie NSArray, um otherButtonTitles anzugeben?
Der Konstruktor von UIAlertSheet verwendet einen otherButtonTitles-Parameter als Varg-Liste. Ich möchte stattdessen die anderen Schaltflächentitel von einem NSArray angeben. Ist das möglich?
ich muss dies tun:
id alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: button1Title, button2Title, nil];
Da ich aber zur Laufzeit die Liste der verfügbaren Schaltflächen erstelle, möchte ich unbedingt Folgendes:
id alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: otherButtonTitles];
Im Moment denke ich, dass ich einen separaten Anruf haben mussinitWithTitle:
für 1 Artikel, 2 Artikel und 3 Artikel. So was:
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
}
Das ist viel doppelter Code, aber es könnte tatsächlich sinnvoll sein, da ich höchstens drei Schaltflächen habe. Wie kann ich das vermeiden?