핵심 데이터를 사용하여 관리하고 UITableViewController/UITableViewCell을 사용하여 사물 목록을 표시합니다. 그러나, Thing 개체는 내가 UITableViewCell의 텍스트 속성에 표시하는 것보다 많은 데이터를 가지고 있습니다. 그리고 UITableViewController에서 더 자세한보기 컨트롤러를 사용하면 정말 원하는 것은 Thing 개체에 대한 포인터입니다. 다음 뷰 컨트롤러로 전달할 수 있습니다. 예를 들어iOS 용 userData UITableViewCell
: 이제
-(UITableViewCell*)tableView:(UITAbleView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
ENTRY_LOG;
// Ask the NSFetchedResultsController for the NSManagedUserObject at the row in question
Thing* thing = [self.fetchedResultsController objectAtIndexPath:indexPath];
// For brevity skip dequeueReusable...
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.textLabel.text = thing.name;
EXIT_LOG;
return cell;
, 나는이 SEGUE가 적절하게 연결되어 가정 가정
- (void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender {
ENTRY_LOG;
UITableViewCell* cellSender = (UITableViewCell*)sender;
// I want to do this:
Thing* thingHandle = [cellSender someMessageToGetThingReference];
[segue.destinationViewController setThing:thing];
// and I don't want to do this
// setup NSFetchRequest and predicate to get thing where 'name = cellSender.text'
[segue.destinationViewController setThing:thing];
EXIT_LOG;
}
나는 그때 내 NSFetchResultsController에서에 사용할 수있는 셀이라는 indexPath를 얻을 수 있다면 최소한 objectAtIndexPath를 다시 얻으십시오. 아마 - (NSIndexPath *) indexPathForSelectedRow를 prepareForSegue에서 UITableView에 대해 호출하고 거기서부터 진행하십시오. 아마도
감사합니다. 귀하의 솔루션은 UITableViewCell로 모든 문제를 해결합니다! –