2012-12-18 2 views
0

나는 안드로이드에 경험이 있지만 정말 새로운 것에 익숙하다. Android에서는 startActivityForResult()를 사용하여 화면 A에서 화면 B로 이동할 수 있습니다. 그런 다음 B가 닫히면 콜백 메소드에서 화면 A에 무언가를 수행하도록 알립니다 (예 : 반환 값 가져 오기, 데이터 새로 고침). ..)ios에서 화면에서 이전 화면으로 값을 반환하는 방법은 무엇입니까?

여기서 물어보고 싶은 것은 : 화면 B가 닫힐 때 호출 될 콜백 함수를 등록 할 방법이 있습니까? 화면 B에서 화면 A로 데이터를 반환하는 방법은 무엇입니까?

공개 속성을 선언 한 다음 화면 B에서 값을 설정할 수 있음을 알고 있습니다.하지만이 방법으로 소스 코드가 복잡해지고 보안이 취약해질 수 있습니다. (즉, 평가를 위해 재산을 다른 화면에 공개하고 싶지 않음).

감사합니다.

답변

0

위임 패턴을 사용할 수 있습니다.

(UITextField, UITableView 등을보세요. 모두이 패턴을 사용합니다).

SecondViewDelegate 

그리고 프로토콜

당신처럼 그것을하는 방법을 제공

당신은 같은라는 두 번째보기에 위임 속성을 설정 ...에서 다음

- (void)secondViewDidSelectValue:(NSString*)selectedValue; 

먼저 두 번째보기의 대리인이되도록 확인합니다.

이 패턴에 대한 많은 리소스가 있습니다.

0

예 더 좋은 방법이 있습니다. 위임이라고합니다. View Controller에서 닫을 때 @protocol@property (nonatomic, weak) id <ProtocolName> delegate;을 만듭니다. 이전 View Controller (secondVC.delegate = self)에서이 값을 설정합니다. Java 인터페이스와 같을 것입니다. 그런 다음 두 번째보기 컨트롤러가 사라지면 위임 방법을 호출합니다 (예 : viewWillDisappear:).

희망적이라고 생각하세요!

관련 문제