Обработка нескольких учетных записей Twitter в SLRequest

При использовании SLRequest есть несколько отличных руководств по твиттингу в приложении для iOS. Однако большинство из них просто вытаскивают последний объект из учетных записей Twitter. Поскольку в настройках iOS может быть выполнено несколько учетных записей Twitter, должен ли разработчик предоставить возможность выбора учетной записи перед отправкой твита или просто использовать учетную запись по умолчанию?


person user717452    schedule 11.01.2013    source источник
comment
Вы когда-нибудь находили решение этой проблемы?   -  person chris    schedule 05.04.2013
comment
Этот хорошо обрабатывается с помощью SLComposeViewController.   -  person JaKXz    schedule 11.04.2014


Ответы (1)


Вы не «обязаны» давать пользователю выбор, но рекомендуется это сделать.

Один из вариантов — это лист действий, подобный этому:

UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"Choose an Account" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
    for (ACAccount *acct in _accounts) {
        [sheet addButtonWithTitle:acct.username];
    }
    sheet.cancelButtonIndex = [sheet addButtonWithTitle:@"Cancel"];
    [sheet showInView:self.view];

Это предполагает, что вы уже загрузили учетные записи в массив (я назвал свой _accounts), и вместо того, чтобы выбирать последний объект, используйте этот код для отображения всех доступных учетных записей.

Затем в методе делегата UIActionsheet проверьте, какая кнопка листа действий была нажата:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex != actionSheet.cancelButtonIndex) {

        self.accountToUse = [_accounts objectAtIndex:buttonIndex];

    }
}

Это установит учетную запись на основе того, что выбрал пользователь. Это шаблон, и его, возможно, придется немного изменить в зависимости от того, где вы к нему обращаетесь, но по большей части это то, что вам нужно!

Надеюсь, поможет!

person Kyle Begeman    schedule 22.07.2013