我有一个社交应用程序。我在 TableViewCell 中有一个 UIButton。这个按钮叫做commentButton。我想用这个按钮实现的目的是让用户点击它并转到保存该帖子评论的表格视图。问题是-----是我在尝试通过 segue 传递当前 indexPath.row 处的 PFObjects 时遇到了非常困难的事情。我已经尝试了很多东西。但是,让我帮助您更好地了解我的问题。
正如您在上面看到的,我正在尝试启动 segue 的是评论按钮。commentButton 的标签为 222。我尝试将按钮的类更改为 NSINTEGER:
cellForRowAtIndexPath
CommentButton *commentButton = (CommentButton*) [cell viewWithTag:222];
commentButton.index = indexPath.row;
[commentButton addTarget:self action:@selector(commentSegue) forControlEvents:UIControlEventTouchUpInside];
commentButton.showsTouchWhenHighlighted = YES;
调用 Segue @Selector
-(void) commentSegue
{
NSLog(@"Button TOUCHED!");
[self performSegueWithIdentifier:@"showcomments" sender:self];
}
为 Segue 做准备
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"showcomments"])
{
CommentsViewController * cvc = segue.destinationViewController;
if([sender isKindOfClass:[CommentButton class]]){
CommentButton * button = sender;
_currentPost =[self.objects objectAtIndex:button.index];
cvc.postObject = _currentPost;
}
}
我尝试了多种方法,当前代码崩溃,发送到实例错误的选择器无法识别。
我也试过:
if([segue.identifier isEqualToString:@"showcomments"]){
NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];
PFObject *currentObjects = [self.objects objectAtIndex:indexPath.row];
CommentsViewController * cvc = segue.destinationViewController;
NSLog(@"Segue Objects: %@", currentObjects);
cvc.postObject = currentObjects;
}
但是当我的 tableView 被填充时,无论我选择什么单元格,我的 NSLog 都会打印出相同的数据。它无法区分我选择了哪个单元格。