Заполните лист действий с массивом - PullRequest
5 голосов
/ 20 марта 2009

У меня есть всплывающее окно действий в моем приложении iphone. Я хотел бы заполнить его строками из массива вместо предопределенных значений.

Я ничего не могу найти в Интернете, чтобы сделать это! Возможно, список действий не подходит?

Прямо сейчас это то, что я использую для его создания:

roomspopup = [ [ UIActionSheet alloc ]  
                  initWithTitle: alertname  
                  delegate: self 
                  cancelButtonTitle: @"Cancel" 
                  destructiveButtonTitle: nil 
                  otherButtonTitles: @"Kitchen", "Dining Room", nil ];

Но вместо "Кухня" и "Столовая" я бы хотел, чтобы он заполнялся из массива. Размер массива (т.е. количество комнат) не является фиксированным числом.

Ответы [ 3 ]

14 голосов
/ 10 августа 2009

@ JimTrell

Способ исправить это - инициировать UIActionSheet без кнопки отмены и добавить эту кнопку отмены после добавления других кнопок.

Сначала запустите лист с кучей нулей:

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Choose" 
                        delegate:self
                        cancelButtonTitle:nil
                        destructiveButtonTitle:nil
                        otherButtonTitles:nil];

Затем переберите ваш массив с помощью addButtonWithTitle: и, наконец, добавьте кнопку отмены и установите ее индекс:

[actionSheet addButtonWithTitle:@"Cancel"];
[actionSheet setCancelButtonIndex:[yourArray count]];
7 голосов
/ 20 марта 2009

Вы не можете сделать это в одной строке. Вам нужно будет позвонить initWithTitle с пустым набором кнопок, а затем добавить другие кнопки с циклом, используя addButtonWithTitle:.

0 голосов
/ 29 октября 2009

Я могу установить кнопку отмены внизу, используя этот код:

anActionSheet = [[UIActionSheet alloc] initWithTitle:@"Change A/C" delegate:self
  cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil, nil];

for (int i = 0; i < [arraylist count]; i++)    
  [anActionSheet addButtonWithTitle:[arraylist objectAtIndex:i]];

anActionSheet.cancelButtonIndex = [arraylist count];    
[anActionSheet addButtonWithTitle:@"Cancel"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...