Динамический UIActionSheet 'otherButtonTitles:'

Я пытаюсь создать что-то, чтобы перечислить все учетные записи пользователя Twitter, подключенные к устройству, в UIActionSheet, Например, у меня есть три аккаунта Twitter на моем устройстве. Мне бы хотелось, чтобы на листе действий была указана моя учетная запись с кнопкой отмены. В настоящее время моя функция выглядит так:

- (void)showAlertViewForAccounts:(NSArray*)accounts {
    accounts = _.arrayMap(accounts, ^id(ACAccount *account) {
        return account.username;
    });

    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Choose an account:"
                                                             delegate:self
                                                    cancelButtonTitle:@"Cancel"
                                               destructiveButtonTitle:nil
                                                    otherButtonTitles:nil];
    for (NSString *username in accounts) {
        [actionSheet addButtonWithTitle:username];
    }    


    [actionSheet showInView:[[[[[UIApplication sharedApplication] delegate] window] rootViewController] view]];
}

Моя проблема в том, что кнопка отмены не отображается в отдельном "разделе" листа действий.

Есть ли в любом случае, что я могу А.) преобразовать accounts массив к va_list быть переданным в качестве параметра UIActionSheetinit... метод или B.) указать, что кнопка отмены должна отображаться в отдельном "разделе"?

1 ответ

Решение

Добавьте кнопку "Отмена" после остальных:

- (void)showAlertViewForAccounts:(NSArray*)accounts {
    accounts = _.arrayMap(accounts, ^id(ACAccount *account) {
        return account.username;
    });

    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Choose an account:"
                                                             delegate:self
                                                    cancelButtonTitle:nil
                                               destructiveButtonTitle:nil
                                                    otherButtonTitles:nil];
    for (NSString *username in accounts) {
        [actionSheet addButtonWithTitle:username];
    }    

    actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle:@"Cancel"];  

    [actionSheet showInView:[[[[[UIApplication sharedApplication] delegate] window] rootViewController] view]];
}
Другие вопросы по тегам