После диалога авторизации Twitter с предупреждением в iOS5
Я использую iOS5 Twitter API, чтобы получить разрешение пользователя на использование его учетной записи Twitter. Это открывает диалоговое окно, из которого они могут выбрать дать или отклонить разрешение для приложения. Я хотел бы иметь возможность открывать оповещение, если пользователь принимает, но не настроил учетную запись Twitter на своем iPhone, однако, поскольку диалог уже открыт, открыть оповещение в этот момент не удается. Как я могу добавить оповещение сразу после закрытия диалога разрешений Twitter?
- (IBAction)logInToTwitter:(id)sender
{
// First, we need to obtain the account instance for the user's Twitter account
ACAccountStore *store = [[ACAccountStore alloc] init];
ACAccountType *twitterAccountType = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[store requestAccessToAccountsWithType:twitterAccountType
withCompletionHandler:^(BOOL granted, NSError *error) {
if (granted)
{
NSArray *twitterAccounts = [[store accountsWithAccountType:twitterAccountType] autorelease];
if ([twitterAccounts count] > 0)
{
//All good
}
else
{
//Open Alert
}
}
}];
}
1 ответ
Решение
Это вызывает ошибку при отображении вида предупреждения. Способ сделать эту работу - создать отдельную функцию.
- (void)noTwitterAccountMessage {
UIAlertView *alertViewTwitter = [[UIAlertView alloc] initWithTitle:@"No Twitter Accounts"
message:@"There are no Twitter accounts configured. You can add or create a Twitter account in Settings."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertViewTwitter show];
}
а затем в обратном вызове магазина учетной записи, вы должны назвать это так
-(void)requestTwitterAccess
{
[self.accStore requestAccessToAccountsWithType:self.twitterType
withCompletionHandler:^(BOOL granted, NSError *error) {
if (!granted) {
[self performSelectorOnMainThread:@selector(noTwitterAccountMessage) withObject:self waitUntilDone:NO];
}
}];
}