UITutViewCell中的UIButton没有释放它创建的UIViewController

时间:2013-03-07 11:23:45

标签: ios uitableview uibutton

在我的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”按钮时,所创建的back永远不会被释放(它会消失,但不会被释放)。

如果我在tableView:didSelectRowAtIndexPath:中完成所有操作,它就会按照我的预期运作并正确释放。

我虽然做得对,但无法弄清楚如何做到正确:(

编辑:是的我正在使用ARC

1 个答案:

答案 0 :(得分:0)

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

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

您可以像这样编写按钮方法

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

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

希望它对你有用