2012-08-13 2 views
0

Я пытаюсь вызвать этот IBAction из подкласса UITableViewCell, у которого есть кнопки внутри. Я не могу получить TWTweetComposeViewController из-за этой строки кода:Tweeting от UIButton внутри tableviewcell - iOS

[self presentModalViewController:tweetSheet animated:YES]; 

Можно ли открыть окно твитов, нажав кнопку на камере?

- (IBAction)tweetTapped:(id)sender { 
{ 
if ([TWTweetComposeViewController canSendTweet]) 
{ 
    TWTweetComposeViewController *tweetSheet = 
     [[TWTweetComposeViewController alloc] init]; 
    [tweetSheet setInitialText: 
     @"Tweeting from iOS 5 By Tutorials! :)"]; 
    [self presentModalViewController:tweetSheet animated:YES]; 
} 
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]; 
    } 

} 
+0

Эта функция вызвана нажатием кнопки? –

+0

Что вы видите? Ошибка? Не появляется ли tweetSheet? – rdelmar

+0

нет tweetsheet popping. Вызывается функция. Фактически, когда я пытался получить доступ к этому методу, UIViewController работает. Когда я попытался из UITableViewCell, твит-лист не всплывает. –

ответ

0

Как @rdelmar упоминалось, presentModalViewController является метод UIViewController не UITableViewCell, так что вы не должны вызывать [self presentModalViewController:tweetSheet animated:YES] от вашего подкласса UITableViewCell.

Вместо этого ваш подкласс UITableViewCell должен информировать контроллер вида для его вида таблицы (вероятно, подкласс UITableViewController), чтобы представить tweetSheet. Один из способов сделать это - добавить делегата в ваш подкласс UITableViewCell, который сообщается всякий раз, когда пользователь хочет что-то изменить. Установите этот делегат в свой подкласс UITableViewController и попросите его обработать запрос твита, представив лист. Делегат вмещающего UITableView, вероятно, уже ваш UITableViewController подкласс, так быстро грязный способ сделать то же самое может быть, чтобы сделать изменения линии, вы должны что-то вроде следующего:

[self.superview.delegate presentModalViewController:tweetSheet animated:YES]; 

Примечание: presentModalViewController:animated: является устаревшие в iOS 5 и presentViewController:animated:completion: являются предпочтительной в качестве прямой замены.

Смежные вопросы