1

TWTweetComposeViewControllerまたは Twitter のソーシャル フレームワークを使用すると、ツイートを投稿するためのデフォルトのツイート シートが表示されます。そのツイートシートダイアログをポップアップさせたくないので、それを使わずにツイートを送信したいです。どうすればいいですか?

4

2 に答える 2

0

これはトリックでできます。私は自分のプロジェクトでこれを行い、このメソッドを配置しました

-(void)TwitteFromShareBtnApear
{

        Class TWTweetComposeViewControllerClass = NSClassFromString(@"TWTweetComposeViewController");

        if (TWTweetComposeViewControllerClass != nil) {
            if([TWTweetComposeViewControllerClass respondsToSelector:@selector(canSendTweet)]) {
                TWTweetComposeViewController *twitter = [[TWTweetComposeViewController alloc] init];



                [twitter setInitialText:@"twitter text"];

               [twitter addImage:[UIImage imageNamed:@"icon.png"]];
                [twitter addURL:[NSURL URLWithString:self.strsmallUrl]];
            [self findSubViewofTwitter:twitter.view];
            [self presentViewController:twitter animated:YES completion:nil];

                twitter.completionHandler = ^(TWTweetComposeViewControllerResult res) {

                    if(res == TWTweetComposeViewControllerResultDone)
                    {

                     //done alert


                    }
                    else if(res == TWTweetComposeViewControllerResultCancelled)
                    {
                    //cancel alert
                    }

                    [self dismissModalViewControllerAnimated:YES];

                };
            }
        }

}
- (void) findSubViewofTwitter:(UIView*)theView
{
    for (UIView * subview in theView.subviews)
    {
        subview.hidden=TRUE;

        if ([subview isKindOfClass:[UIButton class]])
        {
            UIButton *btn = (UIButton *)subview;

            if([btn.titleLabel.text isEqualToString:@"Send"])
            {
                [btn sendActionsForControlEvents:UIControlEventTouchUpInside];
            }
        }
        [self findSubViewofTwitter:subview];
    }
}

TWTweetComposeViewControllerClassについての非常に素晴らしい説明をご覧ください

于 2013-08-30T11:01:29.710 に答える
-1
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

        [accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error){
            if (granted) {

                NSArray *accounts = [accountStore accountsWithAccountType:accountType];
                twitterAccount = [accounts objectAtIndex:0];
            }
        }];

        if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
        {
            SLComposeViewController *tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
            [tweetSheet setInitialText:@"tweeting from my own app! :)"];
            [tweetSheet addURL:[NSURL URLWithString:@"www.web.com"]];
            [self presentViewController:tweetSheet animated:YES completion:nil];
        }
        else
        {
            UIAlertView *alertView = [[UIAlertView alloc]
                                      initWithTitle:@"Sorry"
                                      message:@"You can't send a tweet right now, make sure your device has an internet connection and you have at least one Twitter account setup"
                                      delegate:self
                                      cancelButtonTitle:@"OK"
                                      otherButtonTitles:nil];
            [alertView show];
        }

このコードを試してください...

于 2013-08-30T11:04:00.703 に答える