UIActionSheet addButtonWithTitle: не добавляют кнопки в правильном порядке

SOAP в настоящее время имеет преимущество лучших инструментов, где они генерируют много шаблонного кода для обоих уровень служб, а также генерирующиеся клиенты от любого данного WSDL.

REST более прост, может быть легче поддержать, в результате лежит в основе веб-архитектуры, допускает лучшую видимость протокола и, как доказывали, масштабировался в размере самого WWW. Некоторые платформы там помогают Вам создать сервисы REST, как Ruby on Rails, и некоторые даже помогают Вам с пишущими клиентами, как Услуги передачи данных ADO.NET. Но по большей части, поддержке инструмента недостает.

9
задан Ed Marty 11 August 2009 в 18:47
поделиться

2 ответа

Вы можете просто добавить их в правильном порядке, а затем вручную установить cancelButtonIndex и destructiveButtonIndex .

Для примера кода:

if (self = [super initWithTitle:title delegate:self cancelButtonTitle:nil destructiveButtonTile:nil otherButtonTitles:nil]) {
  if (firstButton) {
    id buttonTitle;
    int idx = 0;
    va_list argList;
    va_start(argList, firstButtton);
    while (buttonTitle = va_arg(argList, id)) {
      [self addButtonWithTitle:buttonTitle]
      idx++;
    }
    va_end(argList);
    [self addButtonWithTitle:cancel];
    [self addButtonWithTitle:destroy];
    self.cancelButtonIndex = idx++;
    self.destructiveButtonIndex = idx++;
  }
}
return self;
21
ответ дан 4 December 2019 в 07:04
поделиться

Ответ Авиада Бен Дова правильный, однако счетчик индексов кнопок не нужен для установки индексов уничтожения и отмены. Метод addButtonWithTitle: возвращает индекс только что использованной кнопки, поэтому мы можем сразу использовать это значение следующим образом:

    if (self = [super initWithTitle:title delegate:self cancelButtonTitle:nil destructiveButtonTile:nil otherButtonTitles:nil]) {
  if (firstButton) {
    id buttonTitle;
    va_list argList;
    va_start(argList, firstButtton);
    while (buttonTitle = va_arg(argList, id)) {
      [self addButtonWithTitle:buttonTitle]
    }
    va_end(argList);
    self.cancelButtonIndex = [self addButtonWithTitle:cancel];
    self.destructiveButtonIndex = [self addButtonWithTitle:destroy];
  }
}
return self;
8
ответ дан 4 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

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