Trong tableview của tôi có các ô tùy chỉnh mà tôi khởi tạo từ một lớp UITableViewCell. Tôi có các phần cho các chữ cái đầu tiên của các bản ghi và có một indexPath đang được tạo động.Custom CellIdentifier là Null Khi sử dụng bộ điều khiển hiển thị tìm kiếm
Tôi muốn thêm bộ điều khiển hiển thị tìm kiếm vào chế độ xem bảng của mình. Vì vậy, tôi đã làm, tạo ra tất cả các phương pháp để lọc dữ liệu. Tôi chắc chắn rằng các chức năng của tôi đang hoạt động tốt bởi vì tôi đang in mảng đếm đến màn hình cho kết quả tìm kiếm.
Vấn đề của tôi là lượt xem lần đầu tiên tải, dữ liệu nằm trên màn hình. Nhưng khi tôi nhấn đầu vào tìm kiếm và nhập một chữ cái, hơn tôi nhận được lỗi 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'
. Sau khi tôi sử dụng một breakpoint tôi thấy rằng tế bào tùy chỉnh của tôi là nil sau khi tìm kiếm. Dữ liệu tồn tại, nhưng ô không được khởi tạo.
Đây là mã tôi sử dụng để khởi tạo tế bào tùy chỉnh:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ObjectCell";
SpeakerCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSDictionary *myObject = [[sections valueForKey:[[[sections allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)] objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
cell.label1.text = [myObject objectForKey:@"myValue"];
return cell;
}
Tôi tin rằng tôi đã phạm sai lầm khi đặt điều khiển trong IB. Vì vậy, tôi đã thêm ảnh chụp màn hình của các đối tượng:
Connections thanh tra để xem bàn của tôi
Connections thanh tra cho điều khiển hiển thị tìm kiếm của tôi
EDIT: Vấn đề thực sự được giải quyết, tôi đã sử dụng d a UISearchBar thay vì Search Display Controller nhưng tôi đoán vấn đề này vẫn chưa được giải quyết. Vì vậy, tôi sẵn sàng thử bất kỳ cách nào để làm cho nó hoạt động.
Điều này có thể đã giải quyết được vấn đề, nhưng đối với hầu hết mọi người, vấn đề là họ không tạo ra một ô mới nếu không có trong hàng đợi cho UITableView đó. Các câu trả lời dưới đây phù hợp hơn giải thích cách xử lý này. – FilmJ
Trên thực tế, kể từ ios6, nếu người dùng sử dụng bảng phân cảnh, ô sẽ luôn ở đó .. – nikravi