Использовать NSArray для указания другихButtonTitles?
Конструктор UIAlertSheet принимает параметр otherButtonTitles в качестве списка varg. Вместо этого я хотел бы указать другие заголовки кнопок из NSArray. Это возможно?
то есть я должен сделать это:
id alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: button1Title, button2Title, nil];
Но так как я генерирую список доступных кнопок во время выполнения, я действительно хочу что-то вроде этого:
id alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: otherButtonTitles];
Прямо сейчас, я думаю, что мне нужно сделать отдельный звонокinitWithTitle:
за 1 предмет, 2 предмета и 3 предмета. Нравится:
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
}
Это много повторяющегося кода, но на самом деле это может быть разумно, так как у меня не более трех кнопок. Как я могу избежать этого?