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
}
这是一个很大的重复代码,但它实际上可能是合理的,因为我有最多三个按钮。 我怎样才能避免这种情况?