2013-05-28 3 views
0

나는 까다로운 상황이 있습니다. 다음은 내가 가지고있는 뷰의 계층 구조입니다.하나의보기 컨트롤러에서 다른보기 컨트롤러로 푸시

(Root)Navigation-VC-->View A-->(via Segue push)--> View B-->View C 
(Root)Navigation-VC-->View A-->(via modal push)-->(Nav Controller) View D-->View E 

내가 그것을 클릭보기 D.에서 취소 버튼이 있습니다, 그것은 제대로보기 A.을 보여줍니다하지만 어떤 이유로 나는 첫 번째 탐색 계층 구조에서 B보기로 이동 할 것이다. 어떻게 전환을 할 수 있습니까?

보기 D에서보기 B로 모달 세구를 작성하면보기 B가 포함 된 탐색 계층 구조가 파괴됩니다. 보기 D에서보기 B를 누르면보기 B가 다른 계층 구조의 일부가됩니다.

할 수 있습니까? 디자인을 다시 생각해야합니까?

답변

0

모달 뷰 컨트롤러를 닫은 후에는 항상 performSegueWithIdentifier : sender : 메서드를 호출하여 B 뷰를 호출 할 수 있습니다. 스토리 보드에 세그먼트 식별자를 설정하는 것을 잊지 마십시오.

보기 A에서 dismissViewControllerAnimated : completion : 메소드를 호출하고 완료 블록에서 perform segue를 호출하십시오. 이는 동시에 Segue를 닫고 수행하는 경우 네비게이션 컨트롤러에 발생할 수있는 손상을 방지하기위한 것입니다.

+0

즉, 모달 뷰를 닫아야한다는 것을 의미합니다. 그러면 뷰 A가 표시되고 뷰 B를 밀어 넣어야합니까? –

+0

@ReadQ 예,이 방법으로 사용자는 앱에 무슨 일이 일어나고 있는지 파악하여 B면의 뒤로 버튼을 누르면 D면 대신 A면이 표시되는 이유를 혼동하지 않게됩니다. . –

관련 문제