Динамический 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
быть переданным в качестве параметра UIActionSheet
init...
метод или 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]];
}