如果没有设置Twitter,让Twitter显示进入我的设置页面的选项?的iOS5 +

时间:2012-10-08 23:08:48

标签: ios ios5 twitter

如果我访问Twitter,我宁愿使用自动警报框询问用户进入设置,但无法使其工作并提供我自己的默认对话框,我真的不想这样做。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

NSLog(@"indexPath.row %i", indexPath.row);

if (indexPath.row == 0) {

    store = [[ACAccountStore alloc] init]; // Long-lived

    twitterType = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

    [store requestAccessToAccountsWithType:twitterType withCompletionHandler:^(BOOL granted, NSError *error) {

        if (granted) {
            // Access has been granted, now we can access the accounts

            twitterAccounts = [store accountsWithAccountType:twitterType];
            if (twitterAccounts.count == 1) {
                  [self getTwitterData:[twitterAccounts objectAtIndex:0]];

            } else {
                   [self selectTwitterAccount];
            }
        } else {
        // Prefer NOT to do this ************************************
        [self performSelectorOnMainThread:@selector(showTwitterError) withObject:nil waitUntilDone:NO];
        }

    }];
}

2 个答案:

答案 0 :(得分:1)

据我所知,这只适用于iOS 5.0 - 5.0.1版本。 然后在iOS 5.1中再次折旧

目前没有解决方案......

如果您想使用iOS 5部分:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];

有些more阅读同一主题

答案 1 :(得分:1)

这有点棘手,我删除*TWTWeetComposeViewController*中的子视图,因此只显示用户未插入时的提醒,点击设置按钮,我们可以在我的应用中打开设置页面

     + (void)setAlertForSettingPage :(id)delegate 
    {
     // Set up the built-in twitter composition view controller.
        TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];


        // Create the completion handler block.
        [tweetViewController setCompletionHandler:^(TWTweetComposeViewControllerResult result) {
            [delegate dismissModalViewControllerAnimated:YES];
        }];

        // Present the tweet composition view controller modally.
        [delegate presentModalViewController:tweetViewController animated:YES];
        //tweetViewController.view.hidden = YES;
        for (UIView *view in tweetViewController.view.subviews){
            [view removeFromSuperview];
        }

     } 

这里,delegate是你的viewcontroller,如果你在viewcontroller中使用这个方法,只需使用self而不是delegate

我不得不面对同样的问题并找到了这个sollution