2011-11-16 20 views
6

Tôi đã một tế bào xem bảng tùy chỉnh mà tôi tạo ra sử dụng XIB:Ô tuỳ chỉnh mới từ XIB gây ra tuân thủ mã hóa khóa cho khóa ...?

enter image description here

Tôi cũng đã liên kết lên các tập tin XIB với tế bào tùy chỉnh UITableView tôi.

Nhưng bây giờ khi tôi cố gắng tải các tế bào trong - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath với các mã sau:

MyCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"]; 
    if (cell == nil) { 
     // Load the top-level objects from the custom cell XIB. 
     NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCell" owner:cell options:nil]; 
     // Grab a pointer to the first object (presumably the custom cell, as that's all the XIB should contain). 
     cell = [topLevelObjects objectAtIndex:1]; 
    } 

tôi sẽ nhận được một [<NSObject 0x8a5b970> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key hitMeButton.

Tôi đã được tìm kiếm trực tuyến và một trong những lý do có thể có thể rằng XIB không được liên kết với IBOutlet, tôi đã kiểm tra để không có vẻ như vậy.

Trả lời

-2

Tôi vừa giải quyết được vấn đề, nhưng tôi không chắc đó có phải là cách thích hợp nhất hay không.

if (cell == nil) { 

MyCustomTableViewCell *aCell = [[MyCustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]; 

NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCell" owner:aCell options:nil]; 

cell = [topLevelObjects objectAtIndex:0]; 

} 
30

Vấn đề thực sự là cách bạn đã liên kết các cửa hàng. Bạn phải liên kết Outlets của bạn từ TableViewCell để nhãn trong di động của bạn (bạn có thể liên kết nhãn ở chủ sở hữu của tập tin)

Dưới đây một số hình ảnh để giảng giải hơn:

Đây là ok enter image description here



Đây là sai enter image description here

+1

+1. Đã dành tuổi để tìm ra điều này, vui vì tôi đã thấy câu trả lời của bạn. – Petar

+0

Tôi không thể hiểu tại sao câu trả lời được chấp nhận có kết quả là '-1' và tôi không được chấp nhận nhưng nhận được 18 điểm: P – MatterGoal

Các vấn đề liên quan