У меня есть массив строк, который я хочу использовать для заголовков кнопки на UIActionSheet. К сожалению, otherButtonTitles: аргумент в вызове метода берет список переменной длины строк, не массив.
Таким образом, как я могу я передавать эти заголовки в UIActionSheet? Обходное решение, которое я видел предложенный, должно передать ноль в otherButtonTitles: затем укажите заголовки кнопки индивидуально при помощи addButtonWithTitle:. Но это имеет проблему перемещения кнопки "Cancel" к первой позиции относительно UIActionSheet, а не последнего; я хочу, чтобы это было последним.
Существует ли способ 1) передать массив вместо списка переменных строк или альтернативно 2) переместить кнопку отмены в нижнюю часть UIActionSheet?
Спасибо.
Я заставил это работать (вам просто нужно, быть в порядке с обычной кнопкой, и просто добавить ее после :
NSArray *array = @[@"1st Button",@"2nd Button",@"3rd Button",@"4th Button"];
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Title Here"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
// ObjC Fast Enumeration
for (NSString *title in array) {
[actionSheet addButtonWithTitle:title];
}
actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle:@"Cancel"];
[actionSheet showInView:self.view];
Одно маленькое замечание: [actionSheet addButtonWithTitle:] возвращает индекс этой кнопки, поэтому для надежности и "чистоты" можно сделать так:
actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle:@"Cancel"];