Создайте UIActionSheet 'otherButtons' путем передачи в массиве, не varlist

У меня есть массив строк, который я хочу использовать для заголовков кнопки на UIActionSheet. К сожалению, otherButtonTitles: аргумент в вызове метода берет список переменной длины строк, не массив.

Таким образом, как я могу я передавать эти заголовки в UIActionSheet? Обходное решение, которое я видел предложенный, должно передать ноль в otherButtonTitles: затем укажите заголовки кнопки индивидуально при помощи addButtonWithTitle:. Но это имеет проблему перемещения кнопки "Cancel" к первой позиции относительно UIActionSheet, а не последнего; я хочу, чтобы это было последним.

Существует ли способ 1) передать массив вместо списка переменных строк или альтернативно 2) переместить кнопку отмены в нижнюю часть UIActionSheet?

Спасибо.

110
задан TheNeil 21 May 2019 в 06:03
поделиться

2 ответа

Я заставил это работать (вам просто нужно, быть в порядке с обычной кнопкой, и просто добавить ее после :

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];
248
ответ дан 24 November 2019 в 03:09
поделиться

Одно маленькое замечание: [actionSheet addButtonWithTitle:] возвращает индекс этой кнопки, поэтому для надежности и "чистоты" можно сделать так:

actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle:@"Cancel"];
78
ответ дан 24 November 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: