Я хочу твитнуть без всплывающего диалога с помощью TWTweetComposeViewController - PullRequest
2 голосов
/ 30 марта 2012

Я хочу опубликовать сообщение на стене в Твиттере, но не хочу, чтобы этот пользователь мог редактировать публикуемое сообщение.

Так что есть две возможности сделать это

1) Либо я могу сделать текстовое поле TWTweetComposeViewController недоступным для редактирования.

2) Публиковать без POP с помощью TWTweetComposeViewController.

Пожалуйста, предложите мне, как это сделать, чтобы варианты или любые другие идеи были наиболее полезны.

Заранее благодарим за любые предложения ...

Ответы [ 2 ]

3 голосов
/ 29 октября 2012

Я изменил вашу функцию "findSubViewofTwitter", чтобы не отправлять твит, не ожидая, когда пользователь нажмет кнопку отправить.Моя функция просто делает недоступным для редактирования UITextView.

- (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];
    }
}
3 голосов
/ 30 марта 2012

Я сделал это с помощью следующего кода ...

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

            };
        }
    } 
}

путем нахождения кнопки и события стрельбы

    - (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];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...