2011-04-18 129 views
0

更新:我現在已經解決了這個問題 - 請參閱我自己的意見。令人驚訝的是,多次寫出問題可能會在您再次瀏覽時導致解決問題!從NIB加載自定義UITableViewCell問題


我必須閱讀每個線程的SO和蘋果的例子,但我不能得到這個在我的情況下工作,我不知道我做錯了嗎?

我已經用XCode 4在IB中製作了一個自定義單元格。該文件的所有者被設置爲表格的自定義視圖控制器的類,並且我有一個IBOutlet用於UITableView單元格,它可以連接到我可以告訴。我通常通過代碼完成我所有的表格單元格,並使用快速滾動方法,但是對於這個項目,我真的需要使用nib來加載單元格內容,我有一些我無法弄清楚的悲傷。

所以在我的接口文件中,

@interface myCustomTableViewController <various delegates> { 

    UITableViewCell *customNibCell; 
    ...  
} 

@property (nonatomic,assign) IBOutlet UITableViewCell *customNibCell; 

在customTableViewController中,我在我的cellForRowAtIndexPath中執行此操作;

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@:"customDirCell"]; 

    if (cell == nil) { 

     [[NSBundle mainBundle] loadNibNamed:@"DirectoryCellWithMenu" owner:self options: nil]; 

     cell = customNibCell; 
     self.customNibCell = nil; 

    } 

    [self configureCell:cell atRow:indexPath.row]; 

而我的configureCell方法可以達到這個單元格,並將我想要自定義的東西拉出來。

UIImageView *fileImageView = (UIImageView *)[cell viewWithTag:3]; 
UILabel *headingTextLabel = (UILabel *)[cell viewWithTag:4]; 
UILabel *modifiedTextLabel = (UILabel *)[cell viewWithTag:5]; 
UILabel *sizeTextLabel = (UILabel *)[cell viewWithTag:6]; 

的問題

細胞都加載到表中儘可能多的好,我可以看到正確的佈局。此外,我在各種按鈕上定義的自定義操作都會觸發OK,因此看起來單元格已正確連接。

但沒有定製的作品 - 我似乎無法改變任何標籤,例如和調查的文本,每次的結果[細胞viewWithTag:NN]是零其中明確路標的問題,但我看不出原因是什麼。

  1. 用於 的UITableViewCell標識符被設定爲 「customDirCell」
  2. 的對象標識爲標籤 等確實-3,4,5,6-根據 IB
  3. 的XIB正好包含1對象, UITableViewCell

我看不出任何錯誤的創建nib文件或代碼,但我顯然缺少一些東西!

任何一種靈魂都可以在我應該尋找的地方發光嗎?

+0

ARGGGH。好的,所以我發現了這個問題。我混淆了Object屬性(由IB設置)和Tag屬性 - 這是我手動設置的。希望這可以幫助其他可能陷入我陷阱的人! – Roger 2011-04-18 12:30:46

回答

0

我已經解決了這個按我的意見。

0

你嘗試這個

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@:"customDirCell"]; 

    if (cell == nil) { 

     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"DirectoryCellWithMenu" owner:self options: nil]; 

     cell =[nib objectAtIndex:0]; 
     self.customNibCell = nil; 

    }