UIAlertSheet のコンストラクターは、varg リストとして otherButtonTitles パラメーターを受け取ります。代わりに 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
}
これは多くの重複コードですが、ボタンは最大で 3 つしかないので、実際には妥当かもしれません。どうすればこれを回避できますか?