我有一个在我的 CustomCell 中创建的按钮。
- (IBAction)onoffBtn:(id)sender
{
UIButton *button = (UIButton *)sender;
button.selected = !button.selected;
if (button.selected)
{
// Do action 1
}
else
{
// Do action 2
}
}
当我运行它时,按钮显示在我在 TableViewController 中创建的 UITableView 内的单元格中。我可以在我的牢房内按那个 onoffBtn,但它不能采取行动。我该怎么做才能让我的按钮执行操作?
这是我 TableViewController.m 中的 cellForRowAtIndexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:[CustomCell reuseIdentifier]];
if (cell == nil)
{
[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
cell = _customCell;
_customCell = nil;
}
// Show my cell
return cell;
}
对于其他问题,我应该在哪里写做流程?在我的 TableViewController.m 或 CustomCell.m 中?如果你不介意,请给我提供代码和解释,我是新来的,还在学习。我想了解您编写的每一行代码。谢谢你。
更新:
到目前为止,这是我在 TableViewController.m 中的 cellForRowAtIndexPath :
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:[CustomCell reuseIdentifier]];
if (cell == nil)
{
[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
cell = _customCell;
_customCell = nil;
}
button.tag = indexPath.row;
cell.titleLabel.text = [titleArray objectAtIndex:indexPath.row];
cell.timerLabel.text = [timeArray objectAtIndex:indexPath.row];
time = [[secondArray objectAtIndex:indexPath.row] integerValue];
NSLog(@"Title %@, time %@, second %@, time %i, tag %d", titleArray, timeArray, secondArray, time, button.tag);
return cell;
}
这是日志说:
2012-08-04 17:38:36.257 Table[1269:f803] Title (
"Test 1",
"Test 2"
), time (
"10 secs",
"5 secs"
), second (
10,
5
), time 10, tag 0 // tag 0 for cell 1
2012-08-04 17:38:36.261 Table[1269:f803] Title (
"Test 1",
"Test 2"
), time (
"10 secs",
"5 secs"
), second (
10,
5
), time 5, tag 0 // tag should be 1 for cell 2 but it said 0. How to fix it?