0

在我的UITableViewCell子类中,UIButton里面应该推一个新制作的UIViewController.

我做了两种这样的方法:

- (void)configureCellWithObject:(Object *)object {
    self.object = object;
    [self.button1 addTarget:self action:@selector(initCustomController) forControlEvents:UIControlEventTouchUpInside];
    // self.button1 is a UIButton
}

- (void)initCustomController {
    CustomViewController *cvc = [[CustomViewController alloc]initWithObject:self.object];
        // self.nc is the navigation controller of the UITableView presenting the cell
        [self.nc pushViewController:cvc animated:YES];
}

而我的问题是,CustomViewController当我触摸左上角的“”按钮时,created 永远不会被释放back(它消失但没有被释放)。

如果我做了所有这些,tableView:didSelectRowAtIndexPath:它就会按我的预期工作并得到适当的释放。

我虽然我做的一切都是正确的,但不知道如何使它正确:(

编辑:是的,我正在使用ARC

4

1 回答 1

0

您可以创建自定义按钮,并在 tableviewCellForRowAtIndexPath 中为每个按钮提供不同的标签,例如在需要时传递选定的值,否则不需要。

cell.button.tag= indexPath.row + 1;

你可以这样写你的按钮方法

[cell.button addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];

在 btnClicked 方法中,只需编写导航代码即可。

只希望它对你有用

于 2013-03-07T11:32:04.123 回答