在我的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
答案 0 :(得分:0)
您可以创建自定义按钮,并在tableviewCellForRowAtIndexPath中为每个按钮指定不同的标签,如果需要则不传递所选值。
cell.button.tag= indexPath.row + 1;
您可以像这样编写按钮方法
[cell.button addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
在btnClicked方法中,只需编写导航代码即可。
希望它对你有用