2015-01-27 3 views
3

모달로 제공되는 뷰 컨트롤러가 3 개 있습니다. 뷰 컨트롤러를 닫고 세 번째 오른쪽에서 첫 번째 (루트)보기 컨트롤러로 직접 이동하는 방법은 무엇입니까?네 번째 뷰 컨트롤러 중 세 번째 뷰 컨트롤러에서 루트 뷰 컨트롤러로 전환

기본적으로 세 번째에서 dismissViewControllerAnimated을 호출하면 기본 두 번째보기 컨트롤러를 닫고 첫 번째보기로 곧바로 돌아가서 나머지를 메모리에서 해제하려고합니다.

단순히 통과와의 중간을 해제하지 않고 다시 처음으로, 오른쪽에있는 세 번째보기에서 가고 싶은 EDIT. 분명히 막대한 메모리 누수가 있기 때문에 첫 번째 형식을 세 번째로 제시 할 수는 없습니다. 그것에 대해

enter image description here

+0

안녕을 필요한 그 무엇, 나는 같은 문제가 있다면 알려주세요. 이거 해결 했니? –

+0

컨테이너보기 컨트롤러에 모든 것을 넣고 transitionFromViewController : toViewController : 메서드를 사용해야합니다. –

+0

사실은 단추를 unwindToViewController (스토리 보드에)에 연결할 수 있었으며 (모달로 표시된) 모든 내 viewcontroller를 닫습니다. 버튼 없이도 똑같이해야한다면 어쩌면 이것을 사용할 것입니다. 고마워요. –

답변

1

사용 NSNotificationCenter.

NSNotificationCenter.defaultCenter().postNotification("dismissNotification") 

그런 다음이보기 컨트롤러가 viewWillAppear 기능 이러한 알림을 수신 할 등록합니다 : 당신이 당신의 뷰 컨트롤러의 전부를 해제 할 때 당신은 알림을 게시 할 수 있습니다 마지막으로

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("dismissFunction"), name: "dismissNotificaiton", object: nil) 

, 당신을 당신의 dismissFunction

self.dismissViewControllerAnimated(true, completion: nil) 
+0

'dismissViewControllerAnimated'는 기본 뷰 컨트롤러에 'self'를 접두어로 붙이더라도 항상 상위 뷰 컨트롤러를 닫는 것처럼 보입니다. –

+0

흠 .. 다른 네비게이션 컨트롤러에 모델 뷰 컨트롤러를 설정하는 것을 고려 했습니까? 이렇게하면 기본 탐색 컨트롤러를 닫으면 다른 모든 컨트롤러가 즉시 닫힙니다. –

0

dismissViewController:를 호출이 시도 :

self.dismissViewControllerAnimated(true, completion: nil) 

당신이 :)

+0

현재 뷰를 제거하고 기본 뷰 컨트롤러를 나타냅니다. 더 명확하게 편집하려면 참조하십시오. –

관련 문제