UIAlertSheet du constructeur prend un otherButtonTitles paramètre comme varg liste. J'aimerais préciser le bouton d'autres titres à partir d'un NSArray à la place. Est-ce possible?
c'est à dire que j'ai à faire ceci:
id alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: button1Title, button2Title, nil];
Mais depuis que je suis de la génération de la liste des boutons disponibles au moment de l'exécution, je tiens vraiment à quelque chose comme ceci:
id alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: otherButtonTitles];
Maintenant, je pense que j'ai besoin d'avoir un autre appel à l' initWithTitle:
pour 1 point, 2 points et 3 éléments. Comme ceci:
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
}
C'est beaucoup de code en double, mais il pourrait effectivement être raisonnable depuis que j'ai tout au plus trois boutons. Comment puis-je éviter cela?