2009-09-10 6 views
1

두 탭 모음 항목간에 동일한 데이터를 공유하는 방법을 알 수 없습니다. 하나의 탭은 nsfetchedresultscontroller를 사용하고 다른 테이블은 my fetchedresults 컨트롤러와 동일한 데이터를 사용해야하는 일반 뷰일뿐입니다.tableview 및 일반보기 (동일한 데이터 개체)

두 개의 법선 뷰가있는 경우 객체를 싱글 톤으로 만들고 테이블 뷰와 일반 뷰에서 같은 데이터를 사용하게합니다.

하지만 지금은 fetchresultscontroller와 정상적인보기가 있습니다. 내 일반적인보기에 다른 fetchedresultscontroller를 사용하는 것에 대해 생각하고 있었기 때문에 캐시, 알림 등을 가져 오는 기능이 모두 있습니다.

fetchresultscontroller를 tableview에 사용해야한다고 알고 있지만 비 테이블 뷰.

누군가 내가 무엇을해야하는지 알고 있습니까? 나는이 문제에 관해 사과로부터 문서를 찾을 수 없었다.

답변

0

데이터는 viewController 또는 뷰와 관련이 있어야합니다 (MVC 스타일을 따를 경우). 데이터가 한 viewController에서만 사용 가능하고 자체 클래스에 데이터를 추출하지 않으려면 다른 viewController에서 호출하여 데이터를 가져올 수있는 메서드를 viewController에 제공하십시오. 예를 들어

는이 같은 방법이 : 다른의 ViewController 내에서 다음

- (NSString) getNameOfSelectedUserAtIndex:(int) index; 
- (int) getCountOfSelectedUsers; 
- (NSSArray) getResults; 

과, 전화 :

string = [fetchedresultscontroller getNameOfSelectedUserAtIndex:i]; 
count = [fetchedresultscontroller getCountOfSelectedUsers]; 
array = [fetchedresultscontroller getResults]; 

을 당신은 당신이 인스턴스 변수로 fetchedresultscontroller 추가 확인해야 당신의 다른 viewController와 viewDidLoad 아마 그것을 설정합니다.

+0

감사합니다!하지만 두 컨트롤러가 자체 tabbar에 있기 때문에 nsfetchedresultscontroller에 도달하기 위해이 컨트롤러에 대한 포인터로 appDelegate에 속성을 만들어야합니다. 데이터를 얻으려는 귀하의 솔루션이 마음에 들지만 주목할만한 점은 어떻게 처리할까요? 내 fetchedresultscontroller가 업데이트 알림을 받으면 정상적인보기에서도이 데이터를 받아야합니다. –

+0

나는 당신이하는 일을 이해하고 있는지 잘 모르겠습니다. 이를 수행하는 한 가지 방법은 appDelegate에서 데이터를 속성으로 사용하는 것입니다. 위와 같이 모든 컨트롤러가 호출되지만, fetchedresultscontroller 대신 appDelegate를 호출합니다. 알림에 관해서는 알림을 요청하고 앱 종료시 데이터 저장을 처리하는 기본보기 컨트롤러가 있습니다. 때때로 내 appDelegate 또는 데이터 모델 클래스에 해당 알림이 있습니다. 그것은 모두 제가하려고하는 것에 달려 있습니다. 즉, 귀하가 귀하의 통지를 위해 특정 뷰 컨트롤러를 사용해야 만한다고 생각하지 않습니다. – mahboudz

관련 문제