2012-06-12 5 views
0

나는 데이터를 사전으로 반환하는 webservice 호출이있는 응용 프로그램이 있습니다. 값을 테이블에로드하기 위해 다른 뷰 컨트롤러에서이 사전에 액세스하려고합니다.두 개의 뷰 컨트롤러간에 사전을 전달 하시겠습니까?

누구든지이 응답 사전을 한보기 컨트롤러에서 다른보기 컨트롤러로 전달하는 방법을 보여줄 수 있습니까?

+0

함수 또는 NSUserDefaults를 사용하거나 appdelegate 등으로 할당되고 합성 된 사전을 가져 오십시오. – Dhawal

+0

프로토콜을 사용하여 다른 viewcontroller의 데이터에 액세스 해보십시오. OP에 의해 명시된대로 – Leena

답변

3

AnotherViewControllerNSDictionary 속성을 정의하고 이전 컨트롤러에서 설정할 수 있습니다. 나는 아래에 간단한 예를 들어 줄 것이다.

//.h 
@interface AnotherViewController { 

    NSDictionary *data; 
} 
@property(nonatomic,retain) NSDictionary *data; 
@end 

//.m 
@implementation AnotherViewController 
@synthesize data; 

지금 현재 컨트롤러에서, AnotherViewController를 초기화 한 후에 당신은 그것을 발표하기 전에 사전을 설정합니다.

AnotherViewController *controller = [[AnotherViewController alloc] init]; 
controller.data = myCurrentDictionary; 

지금 AnotherViewController 이전 제어기의 값을 갖는 data 특성을 갖는다.

희망이 도움이됩니다.

1

무언가 (버튼 클릭, viewDidLoad/viewDidAppear)가 발생하여 webservice가 호출되었다고 가정합니다. 이 경우 UIViewController의 참조를 webservice 클래스로 전달하는 것이 가장 적합한 옵션입니다. 이 ViewControllerResponseProtocol이 같은 방법을 정의 할

id<ViewControllerResponseProtocol> referenceToViewController; 

:

-(void)responseFromWebservice:(NSDictionary*)myDictionary; 

그래서 때이 같은 뭔가를 당신의 웹 서비스 클래스에 있도록이 관계를 당신이 프로토콜을 만들 것을 명심하십시오 어떤 종류가없는 경우

[referenceToViewController responseFromWebservice:myDictionary]; 

: 웹 서비스 클래스는 referenceToViewController에서 NSDictionary 할 수 있습니다 위의 방법을 구축있다 둘 사이의 관계에 대해서는 NSNotificationCenter을 사용할 수 있습니다.

P.S : 이미 초기 UIViewController의 웹 서비스에서 NSDictionary이 이제 새 UIViewController에 전달하려면 skram의 솔루션은 완벽하게 유효합니다. 나는 그것이 당신이 원하는 것이라고 생각하지 않지만.

+0

, 그는 ".. 접근"다른보기 컨트롤러에서 사전을하고 싶습니다. " 그가 이미 가지고 있다는 것을 의미합니다. downvote 그걸로 생각하지 마 :) – skram

+0

어디 있니? 액션을 시작한 'UIViewController'에이 코드가 있으면 ** 사용자의 대답을 수락해야합니다 **. – Peres

+0

'다른보기 컨트롤러 '는 이미'a'보기 컨트롤러에 있고 다른 사용자가 데이터를 원한다는 것을 의미합니다. – skram

관련 문제