2013-09-03 2 views
0

나는 거기에 음식 이름이있는 tableViewController가 있습니다. accessory 버튼을 클릭하면 : - 그 행에있는 객체를 가져오고, detailViewController를 열고 가져온 푸드 객체의 이름을 포함하는 문자열 인 init 메소드를 전달합니다.핵심 데이터 - 개체 가져 오기

detailViewController 나를 이름을 편집 할 수 및 대리인 (detailDidSaveText : (있는 NSString *))으로의 위임 구현이 값을 저장하고 싶은에 TableviewController

에 tableViewController을 문자열 값을 다시 전달합니다.

새 개체를 만들어야한다면 쉽게 만들 수 있습니다. 새로운 managedobject를 만들고 NSEntitydescription insertnewentityforname을 호출합니다.

하지만이 경우 이미 존재하는 개체를 수정해야합니다. 그래서 내가 어떻게 할 수 있니?

내가 편집중인 객체를 검색하려면 어떻게해야합니까?

은 (내가 올바른 방법은 detailVC에 개체를 전달하는 것입니다 알고,하지만 난 더 나은 핵심 데이터를 배울 몇 가지 테스트를하고 있어요 그리고 난이 방법을 시도 싶어요)

답변

1

스토어에 대한 참조를 개체에

@property (nonatomic) Food *foodItemToEdit; 

및 액세서리 버튼이 objectToEdit가 존재하는 경우는 미상 경우, 음식을 만들고, 당신의 대리자 메서드에서 다음

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath 
{ 
    self.foodItemToEdit = [self.fetchedResultsController objectAtIndexPath:indexPath]; 
} 

를 도청 할 때 속성을 설정 존재하지 않으면 텍스트로 설정하십시오.

- (void)detailDidSaveText:(NSString *)text 
{ 
    if (self.foodItemToEdit == nil) { 
     self.foodItemToEdit = [NSEntityDescription insertNewObjectForEntityForName:@"Food" inManagedObjectContext:self.context]; 
    } 
    self.foodItemToEdit.text = text; 
} 
관련 문제