2012-03-30 9 views
2

Ich möchte auf Twitter-Wand posten, aber nicht wollen, dass Benutzer Nachricht bearbeiten kann gepostet werden.Ich möchte twittern ohne Pop-Dialog von TWTweetComposeViewController

So gibt es zwei Möglichkeit, diese

1) zu tun, entweder i TWTweetComposeViewController Textfeld nicht editierbar machen.

2) Post ohne POP von TWTweetComposeViewController.

Bitte schlagen Sie mir vor, wie Sie von oben auf Optionen oder andere Ideen am meisten willkommen sind.

Vielen Dank im Voraus für jede Art von suggetions ....

+0

Sieht aus wie das ist genau das, was Sie wollen: http://stackoverflow.com/questions/9423447/ios-5-twitter-framework-tweeting-without-user-input-and-confirmation-modal-vie – rosslebeau

+0

Sie können die erste Option verwenden. –

+0

Wenn Sie planen, TwitterKit über Twitter zu integrieren, um die Tweets über Ihre benutzerdefinierte Twitter-App durchzuführen, dann könnte Ihnen dies helfen. http://stackoverflow.com/a/28602749/1740354 –

Antwort

3

i dies durch folgenden Code getan haben ...

-(void)postToTwittert:(NSString *)stringtoPost 
{  
    Class TWTweetComposeViewControllerClass = NSClassFromString(@"TWTweetComposeViewController"); 

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

      [twitter setInitialText:stringtoPost]; 

      [twitter addImage:[UIImage imageNamed:@"apple.jpg"]]; 
      [twitter addURL:[NSURL URLWithString:@"http://www.erwinzwart.com"]]; 
      [self findSubViewofTwitter:twitter.view]; 
      [self presentViewController:twitter animated:YES completion:nil]; 

      twitter.completionHandler = ^(TWTweetComposeViewControllerResult res) { 

       if(res == TWTweetComposeViewControllerResultDone) 
       { 
        [self completeGameStep:@"glueper2012"];      

       } 
       else if(res == TWTweetComposeViewControllerResultCancelled) 
       { 

        UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Canceled" message:@"Your Tweet was not posted" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

        [alertView show]; 

       } 

       [self dismissModalViewControllerAnimated:YES]; 

      }; 
     } 
    } 
} 

von Taste zu finden und Brennen Ereignis

- (void) findSubViewofTwitter:(UIView*)theView 
{ 
    for (UIView * subview in theView.subviews) 
    { 
     //NSLog(@">>>>>>>>>>>>>>>>>> :%@", subview); 
     if ([subview isKindOfClass:[UIButton class]]) 
     { 
      UIButton *btn = (UIButton *)subview; 
      //NSLog(@">>>>>>>>>>>>>> is kind of class :%@", btn.titleLabel.text); 
      if([btn.titleLabel.text isEqualToString:@"Send"]) 
      { 
       [btn sendActionsForControlEvents:UIControlEventTouchUpInside]; 
      } 
     } 
     [self findSubViewofTwitter:subview]; 
    } 
} 
3

Ich habe deine Funktion "findSubViewofTwitter" geändert, um den Tweet nicht zu senden, ohne den Benutzer auf Senden warten zu müssen. Meine Funktion macht das UITextView einfach nicht editierbar.

- (void) findSubViewofTwitter:(UIView*)theView 
{ 
    for (UIView * subview in theView.subviews) 
    { 
     if ([subview isKindOfClass:[UITextView class]]) 
     { 
      UITextView *textView = (UITextView *)subview; 
      textView.editable = NO; 
      return; 
     } 
     [self findSubViewofTwitter:subview]; 
    } 
}