2013-03-07 35 views
0

在我的UITableViewCell子類中有一個UIButton裏面應該推新制作的UIViewControllerUITableViewCell中的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

你使用弧? – lakesh 2013-03-07 11:26:36

+0

是的忘了提到它謝謝 – ItsASecret 2013-03-07 11:26:54

+0

釋放customviewcontroller的負擔留給編譯器。所以它會照顧何時釋放customviewcontroller。 – lakesh 2013-03-07 11:29:09

回答

0

可以創建自定義按鈕,並在tableviewCellForRowAtIndexPath給出不同的每個按鈕如果需要的話,否則標籤不喜歡傳球選擇的值。

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

你可以寫你的按鈕方式類似

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

而在方法btnClicked只是寫你的導航代碼。

只是希望它能爲你工作

+0

謝謝,但我知道,我不太喜歡標籤,目標是'如果可能',使它在單元格的方法中工作 – ItsASecret 2013-03-07 11:35:18

+0

你可以添加目標按鈕在給定的答案。在該方法中,只需編寫導航代碼即可。如果你不想分配標籤,那麼它可以,因爲你只需要導航。對 ? – 2013-03-07 11:36:56

+0

不要擔心我明白你的意思我只是不想使用'tags':p是的,只是導航,但每行創建一個不同的控制器。如果我沒有找到任何答案,我會標記爲有效,但我仍在等待另一個答案;) – ItsASecret 2013-03-07 11:38:28

相關問題