UITableviewCell中的一个button
我有用nib文件创build的UItableViewCell,并把我的单元格中的button。 我hace创build了一个IBAction关联一个动作,当用户点击button。但我有一个崩溃,我不知道这是什么问题,我已经设置了所有必要的事情。
//in my .h -(IBAction)go; //in my .m -(IBAction)go { NSLog(@"hello"); }
但是我有一个崩溃,没有什么是显示在CONSOLdebugging。
我怎么能在UITableviewcell中设置一个button,并与这个button关联一个动作。 感谢您的回答
以编程方式创buildbutton并将其添加到单元格的子视图中。 将标签设置为indexPath.row值并将该目标添加到button。 现在在目标中,你可以简单地使用:
-(void)buttonInsideCellIsPressed : (id)sender{ UIButton *button = (UIButton *)sender; NSIndexPath *indexPath = [NSIndexPath indexPathForRow:button.tag inSection:0]; CustomCell *cell = (CustomCell*)[myTable cellForRowAtIndexPath:indexPath]; // Here you may change the background image for the button for rollover or anything }
在我看来,设置标签是一个不好的方法。 它限制了应用程序中标签的更好的使用。
NSIndexPath *indexPath = [self.tableView indexPathForCell:(UITableViewCell *)[[sender superview] superview]];
使用这种方法,您实际上可以检索单元格的IndexPath。
这是为我工作…
- (void)yourButton:(id)sender{ NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint: currentTouchPosition]; CustomCellClass *cell = (CustomCellClass *)[self.tableView cellForRowAtIndexPath:indexPath]; NSString *myFooText = cell.cellLabelFoo.text; }
以编程方式创buildbutton并将其添加到单元格子视图。
您可以使用此代码在编程上将IBAction与button关联,而不必使用nib:
[myButton addTarget:self action: @selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
坠机事件可能是由于以下原因
- 你已经添加一个视图控制器到你的单元格并释放它。 因此,当点击button时,无法find控制器来处理水龙头
- 当您添加点按事件的buttoncallback时,您没有指定有效的select器
- 您可能正在访问空数据
如果您发布了一些关于如何创build单元格的代码,您将能够获得更多的信息。
你需要创build一个方法并将(id)发送者传递给它; 试试这下面..hope这个作品..这是你写你在什么地方button和调用方法..
[myButton addTarget:self action: @selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; -(void)buttonPressed:(id)sender{ nslog(@"hi"); }
希望这个作品