2012-12-19 110 views
0

我有一個custom celltextfield作爲子視圖。將單元設置爲textfield的代表是否合法?自定義UITableViewCell委託其子視圖?

我想將單元格設置爲委託,因爲它是父視圖,但是當我這樣做時,應用程序崩潰。我想這是因爲table view dequeue cells,也許這就是爲什麼代表參考在兩者之間迷失的原因。 所以,我試圖設置cellForRowAtIndexPath的委託,以確保它每次都新鮮設置,但它仍然無法工作。

難道我真的不得不提高水平,讓tableview controller成爲單元格子視圖的代表嗎?還是我缺少別的東西?

崩潰報告輸出:

>libobjc.A.dylib`objc_msgSend: 
> 
0x32ed4f78: ldr r3, [r4, #8] 
> 

initWithStyle我

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier type: (NSString *)cellType 
{ 

self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
if (self) { 
    // Initialization code 
    NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"Custom Cell" owner:self options:nil]; 
    self = [nibArray lastObject]; 

    self.cellType = [NSString stringWithString:cellType]; 
    self.contentText.autoresizingMask = UIViewAutoresizingNone; 
    self.detailLabel.autoresizingMask = UIViewAutoresizingNone; 
    self.contentText.delegate = self; 
} 
return self; 
} 

回答

0

有不如授人以單元格中的文本字段自定義單元格是沒有問題的。表視圖將在需要時重用某些單元格,但不會影響任何內容。我想你錯過了別的東西。也許我可以提供幫助,如果你發佈了它在崩潰時得到的錯誤和相應的代碼片段。

+0

謝謝拉維,我發佈了我的代碼 –

+1

在你的情況下,錯誤「objc_msgSend」似乎發生,因爲該對象被釋放。您可能需要發佈完整的錯誤消息,以瞭解哪種方法導致錯誤。另外,像endy提到的,你並不需要在你的表視圖委託/數據源方法中分配委託。 – Ravi

0

不要將delegatecellForRowAtIndexPath.

在你UITableViewCell子類中添加的UITextFieldinitWithStyle方法,然後在那裏設置delegateself

+0

感謝您的回覆!我的第一種方法是在initWithStyle中設置它,但然後它失敗了,所以我轉移到cellForRow,但無論如何他們不能正常工作 –