Tôi đang có một tinh ranh của một thời gian nhận được toàn bộ dữ liệu cốt lõi này, Storyboard, bộ ba UISearchBar làm việc cùng nhau như nó cần. Cuối cùng đã xây dựng thành công bảng với Dữ liệu cốt lõi, thu hẹp các mục bằng Văn bản tìm kiếm và sửa đổi chuẩn bị, vẫn còn một dấu nhắc ...Rắc rối khi vượt qua indexPath.row với preparForSegue với UISearchBar
Khi tôi nhấp vào bất kỳ mục nào trong bảng để chuyển đến chế độ xem chi tiết, tất cả đều tốt trong bảng chưa được lọc. PrepareForSegue được gọi và chi tiết xuất hiện hoàn hảo.
Khi tôi tìm kiếm, bảng của tôi được lọc (Tôi sẽ lọc tùy chọn mảng cho bây giờ thay vì một NSFetchedResultsController thứ hai, nhưng không phải vì thiếu cố gắng!).
Khi tôi nhấp vào một mục trong danh sách được lọc, PrepareForSegue được gọi và chế độ xem chi tiết được đẩy, tuy nhiên, nó luôn lấy chi tiết từ mục đầu tiên trong danh sách!
Ví dụ: nếu tôi tìm kiếm "c" và danh sách được thu hẹp thành "Charlie" và "Cookie", khi tôi chọn "Charlie", tôi thấy chế độ xem chi tiết cho "Charlie". Khi tôi chọn "Cookie", thật không may, tôi cũng thấy chế độ xem chi tiết cho "Charlie"
Tôi đang giả định rằng mã preparForSegue là vấn đề (có thể không chính xác?). Đây là mã:
SampleTVC *sampleDetailTVC = segue.destinationViewController;
sampleDetailTVC.delegate = self;
// Store selected Role in selectedRole property
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
// self.selectedRole = [self.fetchedResultsController objectAtIndexPath:indexPath];
if (savedSearchTerm){
self.selectedRole = [self.searchResults objectAtIndex:indexPath.row];
} else {
self.selectedRole = [self.fetchedResultsController objectAtIndexPath:indexPath];
}
NSLog(@"Passing selected role (%@) to SampleTVC", self.selectedRole.name);
sampleDetailTVC.role = self.selectedRole;
Mọi trợ giúp sẽ được đánh giá cao!
Khi bạn chọn "Cookie", có thể giúp bạn đăng nhập giá trị của 'self.searchResults' và' indexPath.row' tại thời điểm bạn nhận vai trò? –
Khi tôi thêm: if (savedSearchTerm) { self.selectedRole = [self.searchResults objectAtIndex: indexPath.row]; NSLog (@ "tìm kiếm là gì:% @ indexpath là gì:% @", self.searchResults, indexPath.row); -------------------- Tôi nhận được những điều sau đây: searchresults: charlie, cookie [edited to shorten] indexpath là gì: (null) ----- I nghĩ rằng index.path (null) có thể là vấn đề? –
và trên bảng không được tìm kiếm, nếu tôi đăng nhập indexPath tôi nhận được: đường dẫn chỉ mục là gì: 2 chỉ mục [0, 3] –