보기 컨트롤러에서 탐색 스택의 부모로 데이터를 전달하는 여러 방법을 보았습니다. 꽤 일반적이어서, 이것들 중 어느 것도 그것을 해결하지 못하는 것 같습니다. 원하는 작업 :다시 탐색 화살표를 누를 때 부모보기 컨트롤러에 데이터 전달
- 탐색 스택에 하위보기 컨트롤러를 푸시합니다. 상위 뷰 컨트롤러의
prepareForSegue(_:sender)
에 속성을 설정했습니다. - 하위보기 컨트롤러의 속성을 편집하십시오. 여기까지는 모든 것이 작동합니다.
- 왼쪽 위 모서리에있는 화살표 다시 단추를 누르면 자식 뷰 컨트롤러가 자동으로 팝업되고 편집 된 데이터를 부모에게 다시 전달해야합니다.
스토리 보드에서 unwind 동작을 설정할 수는 있지만 쉬울 것입니다.하지만 화살표 버튼은 런타임에만 표시되기 때문에 불가능합니다. 그 화살표를 누를 때 prepareForSegue(_:sender)
이 자식에게 호출되지 않는 것 같습니다. 자식 또는 부모 중 어느쪽에도 canPerformUnwindSegueAction(_:fromViewController:withSender)
또는 unwindForSegue(_:towardsViewController)
또는 segueForUnwindingToViewController(_:fromViewController:identifier:)
이 아닙니다.
으로 내가 아이의 viewWillDisappear
방법을 무시하고 탐색 스택에서 부모를 액세스, 어딘가 아이를 액세스 할 수있는 부모를위한 방법이 있어야합니다, 또는이 바로 나쁜 디자인 될 수 here을 제안? 어떤 도움을 주셔서 감사합니다! iOS 7 이상을 타겟팅하고 있습니다.
부분적으로 개인적인 취향이지만 MVC-esque 디자인은이 문제를 모두 피할 수 있습니다. 두 번째 VC에서 모델이 변경되면 첫 번째 VC로 다시 팝업 할 때 같은 소스에서 모델을 업데이트하면됩니다. – PeejWeej
http://stackoverflow.com/questions/19343519/pass-data-back-to-previous-viewcontroller 이 도움이 될 수도 –
@ PEEJWEEJ하지만 이것은 정확하게 문제가 어떻게 아이를 터뜨릴 때 부모에 액세스 할 수 있습니까? – Nickkk