2010-06-12 2 views
0

안녕하세요. iPhone 응용 프로그램에서 탐색 컨트롤러를 사용하고 있습니다. 컨트롤러를 네비게이션 스택에 밀어 넣을 때 데이터를 전달할 수 있지만 컨트롤러를 팝 때 데이터를 다시 전달하는 방법은 무엇입니까?Obj-C : 탐색 컨트롤러의 detailViewController에서 매개 변수를 다시 전달

기본적으로 달성하고자하는 것은 루트 탐색 컨트롤러보기가 편집 할 수있는 여러 필드를 표시한다는 것입니다. 그런 다음 사용자는 편집 할 필드 중 하나를 클릭하고 EditViewController는 사용자가 편집하려는 필드의 이름으로 스택에 푸시됩니다. 이제 사용자는 필드의 새 값을 입력하고 save를 눌러 뷰 컨트롤러를 팝합니다. 그렇다면 editViewController의 값을 루트 탐색 컨트롤러 뷰로 다시 가져 오는 방법은 무엇입니까?

답변

0

방법이 몇 가지있다 :

  • 당신의 EditViewController을 누르면, 값 자체를하지 수정할 수 값으로 그것을 포인터를 전달합니다. 그렇게하면 컨트롤러는 포인터가 팝되기 전에 포인터를 통해 값을 수정할 수 있습니다.
  • 루트 뷰 컨트롤러가 EditViewControllerDelegate 프로토콜을 구현하는 위임을 구현합니다. 그런 다음 자신을 매개 변수로 EditViewController에 전달하면 EditViewController은 적절한 대리 메서드를 호출하여 루트 뷰 컨트롤러에 변경 내용을 알릴 수 있습니다.

첫 번째는 가장 간단하고 두 번째는 더 유연합니다.

+0

위임은 재미있을 것 같습니다. 나는 그것을 구현하려고 할 것이다. 감사 – Garfield81

관련 문제