Мне удалось переназначить переменные UITableViewCell и заставить его твитнуть с помощью TWTweetComposeViewController, но я столкнулся с проблемой. Всегда чирикать переменные из последней строки в UITableView.
Вот мои настройки: у меня есть 1 кнопка твита и 4 UILabels в UITableViewCell. 4 UILabels извлекают информацию из Plist для заполнения таблицы. В каждой ячейке есть кнопка «твит», чтобы твитнуть информацию о ячейке, но тут я столкнулся с проблемой. Он всегда отправляет в Твиттере информацию из последней строки таблицы, а не из строки, в которой она находится. Любая помощь очень ценится.
UITableViewCell.h
@property (nonatomic, strong) IBOutlet UILabel *playerOneLabel;
@property (nonatomic, strong) IBOutlet UILabel *playerOneScoreLabel;
@property (nonatomic, strong) IBOutlet UILabel *playerTwoLabel;
@property (nonatomic, strong) IBOutlet UILabel *playerTwoScoreLabel;
Настройка основного вида контроллера:
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"ScoreListCell";
ScoreCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell...
NSDictionary * dictionary = [scoresArray objectAtIndex:indexPath.row];
cell.playerOneLabel.text = [dictionary objectForKey:@"playerOneName"];
cell.playerOneScoreLabel.text = [dictionary objectForKey:@"playerOneScore"];
cell.playerTwoLabel.text = [dictionary objectForKey:@"playerTwoName"];
cell.playerTwoScoreLabel.text = [dictionary objectForKey:@"playerTwoScore"];
self.player1Name = cell.playerOneLabel;
self.player1Score = cell.playerOneScoreLabel;
self.player2Name = cell.playerTwoLabel;
self.player2Score = cell.playerTwoScoreLabel;
return cell;
}
и, наконец, настройка твита в контроллере основного вида:
- (IBAction)twitter:(id)sender {
if ([TWTweetComposeViewController canSendTweet])
{
TWTweetComposeViewController *tweetSheet =
[[TWTweetComposeViewController alloc] init];
NSString *text = [NSString stringWithFormat:@"%@-%@, %@-%@",
player1Name.text, player1Score.text, player2Name.text, player2Score.text];
[tweetSheet setInitialText:text];
[self presentModalViewController:tweetSheet animated:YES];
}
else
{
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Sorry"
message:@"Tweet unsuccessful. Make sure your device has an internet connection and you have a Twitter account."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}