문제

API 호출을 통해 데이터 배열을 가져 오는 '다운로드'뷰 컨트롤러를로드하여 시작하는 앱을 구축하고 있습니다. 데이터가 반환되면 앱은이보기 컨트롤러의보기를 숨기고 두 개의 내비게이션 컨트롤러가있는 탭 막대 컨트롤러를로드합니다.

첫 번째 내비게이션 컨트롤러로 푸시 된 첫 번째 뷰는 테이블 뷰입니다. 이 테이블 뷰에서는 초기 '다운로드'보기 컨트롤러에서 API 호출에서 검색된 데이터를 표시해야합니다.

누군가 '다운로드'와 테이블 뷰 컨트롤러 사이 에이 데이터를 어떻게 전달할 것인지 설명해 주시겠습니까? 그들이 서로에 대해 알지 못한다는 것을 고려합니다.

중요한 참고 사항은 Tab Bar 컨트롤러를로드하기 전에 데이터를 가져와야하므로 사용될 테이블 뷰 컨트롤러 내에서 데이터를 간단히 가져올 수는 없습니다.

도움이 되었습니까?

해결책

귀하의 데이터는 애플리케이션에 종속되어 있으므로 응용 프로그램 대의원은 데이터에 대한 포인터를 유지할 수 있으며 두 뷰가 사용하여 액세스 할 수 있습니다. [[UIApplication sharedApplication] delegate].

또 다른 옵션은 다운로드가 완료되면 응용 프로그램 대의원에게 데이터와 함께 메시지를 보내는 것입니다. 앱이 뷰 컨트롤러가 숨겨져있는 것이 아니라 뷰 컨트롤러의보기를 숨긴다 고 말하기 때문에 이미 이와 같은 일을하고 있다고 가정합니다. 어떻게 든 다운로드가 완료되었음을 알아야합니다. 따라서 다운로드 컨트롤러에서 :

- (void) downloadFinished {
    [listener downloadFinished:data];
}

그리고 귀하의 신청서에서 (the listener 이전 스 니펫에서) :

- (void) downloadFinished:(NSData *)data {
    CustomViewController *c = [[[CustomViewController alloc] initWithData:data] autorelease];
    [downloadView removeFromSuperview];
    [window addSubview:c.view];
}

Custom View Controller는 NIB로드 및 테이블에 대한 액세스를위한 데이터를 보유하는 경우를 처리합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top