2011-09-22 7 views
0

두 개의 탭 중 하나가 "즐겨 찾기"탭 인 앱을 만들고 있습니다. "검색"이라는 다른 탭에서 테이블보기에 결과 목록이 표시됩니다. 탭을 누르면 해당 특정 결과의 세부 사항을 볼 수 있습니다. 내가 여기에서하려고하는 것은, 자세히보기에 버튼이 있고, 그것을 누르면, 현재 결과가 "즐겨 찾기"탭으로 전송됩니다. 위임자를 사용하여 정보를 전달하려고 시도했지만 제대로 작동하지 않았습니다. 여기 내 코드입니다 :즐겨 찾기 목록을 만드는 방법

DetailViewController.m

-(IBAction) addSomething { 
    [self.delegate detailViewController:self addToFavourite:self.something]; 
} 

FavouriteViewController.m이 대리자 메서드를 구현 :

- (void) detailViewController:(DetailViewController *)detailViewController addToFavourite:(Something *)something{ 
    detailViewController.delegate = self; 
    [thingsList addObject:something]; 
    [theTableView reloadData]; 
} 

모든 내장 및 미세하지만 클릭하면 "Add"버튼을한다 자세히보기에서 데이터가 "즐겨 찾기"탭의보기로 전송되지 않습니다. 아무도 이것으로 나를 도울 수 있습니까? 이 경우 핵심 데이터를 사용해야합니까, 이전에는 핵심 데이터를 사용하지 않았습니다. 감사.

+0

이 데이터는 앱의 라이프 사이클 이상으로 유지됩니까? 또는 앱을 사용할 때마다 다시로드됩니까? –

+0

즐겨 찾기 목록은 지속적이어야하므로 코어 데이터를 사용해야하는지 궁금합니다. – Michael

+0

최대. 배열과 같은 작은 것이면 사용자 기본값이 잘 작동합니다. CoreData를 처리하는 것보다 훨씬 적은 오버 헤드. 행운을 빕니다. –

답변

1

쉽게 해결할 수있는 방법 중 하나는 정보를 NSUserDefaults에 저장하는 것입니다.

NSUserDefaults *defaults = [NSUserDefaults standardDefaults]; 
[defaults setObject:thingsList forKey:@"myData"]; 
[defaults synchronize]; 

다른 탭에서 데이터를로드 할 때 사용자 기본값에서 채우십시오.

NSUserDefaults *defaults = [NSUserDefaults standardDefaults]; 
otherData = [defaults objectForKey:@"myData"]; 

나는 아마 내가해야보다 사용자 기본값을 남용하지만 로컬로 데이터를 저장하고 실행간에 유지 한 아주 쉬운 방법을 수 있습니다. 또한 끈기를 위해 iTunes로 백업합니다. 희망이 도움이됩니다.

+0

안녕하세요, 한 가지 질문이 있습니다, 어디서 "thingList"를 초기화합니까? – Michael

+0

thinkList는 원하는대로 지정할 수 있습니다. NSArray, NSDictionary, NSString, 무엇이든 필요합니다. 필요할 때마다 초기화하고 NSUserDefaults에 객체로 추가하십시오. –

+0

하지만 초기화 할 때마다 동일한 키에 대한 개체를 설정하면 원본 데이터가 재정의됩니다. 맞습니까? 자세히보기가로드 될 때마다 thingsList를 유지하는 방법은 무엇입니까? – Michael

관련 문제