从ACAccountStore打开Twitter设置

从ACAccountStore打开Twitter设置

本文介绍了从ACAccountStore打开Twitter设置(iOS 5.1 TWITTER)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在iOS 5.0中我通过我的应用程序打开Twitter设置

in iOS 5.0 i was opening Twitter setting from my app by

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@prefs :root = TWITTER]];

但是,此功能在iOS 5.1中被删除,因此我无法打开Twitter设置。

but , this features is removed in iOS 5.1 , hence i can not able to open twitter setting .

现在我正在使用

 + (void)makeRequestsWithURL: (NSURL *)url {
// Create an account store object.
ACAccountStore *accountStore = [[ACAccountStore alloc] init];

// Create an account type that ensures Twitter accounts are retrieved.
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[self canTweetStatus];

// Request access from the user to use their Twitter accounts.
[accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
    if(granted) {
        // Get the list of Twitter accounts.
        NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];

        // For the sake of brevity, we'll assume there is only one Twitter account present.
        // You would ideally ask the user which account they want to tweet from, if there is more than one Twitter account present.
        if ([accountsArray count] > 0) {
            // Grab the initial Twitter account to tweet from.
            ACAccount *twitterAccount = [accountsArray objectAtIndex:0];


            // Create a request, which in this example, posts a tweet to the user's timeline.
            // This example uses version 1 of the Twitter API.
            // This may need to be changed to whichever version is currently appropriate.
            TWRequest *postRequest = [[TWRequest alloc] initWithURL:url parameters:nil requestMethod:TWRequestMethodPOST];

            // Set the account used to post the tweet.
            [postRequest setAccount:twitterAccount];

            // Perform the request created above and create a handler block to handle the response.
            [postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
                NSString *output = [NSString stringWithFormat:@"HTTP response status: %i", [urlResponse statusCode]];
                iOS5Twitter *twitter5 = [[iOS5Twitter alloc] init];
                [twitter5 performSelectorOnMainThread:@selector(displayText:) withObject:output waitUntilDone:NO];
                [twitter5 release];                }];
        }
    }

}];

}

提出请求,我能够检查我是否已经被支持

for making request, i am able to check wether i am loged in or not by the

if([TWTweetComposeViewController canSendTweet])

但现在我想:如果我没有插入它会显示如图所示的警报并想要转到推特设置。可能吗 ?或者我必须手动去推特设置?

but now i want : if i am not loged in it would be show an alert like shown in image and want to move to the twitter setting . is it possible ? or i have to manually go ti twitter setting ?

推荐答案

这有点棘手,我通过删除 * TWTWeetComposeViewController * 中的子视图,所以它只显示警报当用户没有进入并点击设置按钮时,我们可以在我的应用程序中打开设置页面。

It is little tricky , i get by the removing the subviews in *TWTWeetComposeViewController*, so it shows only alert when user is not loged in and by the clicking on setting button , we can open Setting page in my app.

     + (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];
        }

     }

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

here , deleate is your viewcontroller , if you are using this method inside your viewcontroller just use self instead of delegate.

这篇关于从ACAccountStore打开Twitter设置(iOS 5.1 TWITTER)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-06 06:06