2014-12-18 3 views
0

내가 가지고있는 스토리 보드에서 다음 장면현재 탐색보기 컨트롤러 체인에없는 viewController를 푸십시오.

VC1 => NavC => VC2 => VC3 => VC4 내가 프로그래밍 VC1에서 SEGUE 내가 NavC를 인스턴스화하여 그 일을하고 조건 (에 VC2 또는 VC3 중 하나를 기반으로하는 viewControllers 배열을 변경하십시오. 이제 VC4에서 VC1로 긴장을 풀고 싶습니다.하지만 무시하고 아무 일도 일어나지 않기 때문에 내가 잘못하고 있다고 생각합니다. 이렇게하려면 VC1에서 unwind1이라는 IBAction을 정의한 다음 VC4에서 이탈로 segue를 생성하고 segue1이라고했습니다. 나는 또한은 UINavigationController을 하위 클래스와 그 안에 다음과 같은 방법이있다 :

override func viewControllerForUnwindSegueAction(action: Selector, fromViewController: UIViewController, withSender sender: AnyObject!) -> UIViewController { 
    return self.presentingViewController! 
} 

override func segueForUnwindingToViewController(toViewController: UIViewController, fromViewController: UIViewController, identifier: String?) -> UIStoryboardSegue { 
    return UIStoryboardSegue(identifier: identifier, source: fromViewController, destination: toViewController) 
} 

가 VC4의 방법 항목에서 내가 self.performSegueWithId의 호출 ("unwind1")를 확인합니다. 실행 제어를 추적 할 때이 줄에 도달하지만 무시됩니다. 위에서 언급 한 두 가지 방법에 중단 점을 적용하면 실행 제어가 실행되지 않습니다. 내가 뭘 잘못하고 있다고 생각 하나?

+1

VC4의 종료 아이콘으로 끌면'unwind1 :'메소드가 나열됩니다. 그걸 선택하면 그만하면됩니다. 아마도 VC2/VC3에 도달하기 위해 스 구를 사용하지 않기 때문에 혼란 스러울 수 있습니다. VC2와 VC3을 별도의 네비게이션 컨트롤러에 내장 한 다음 VC1에서 VC2 또는 VC3까지 서로 다른 부분이있는 것이 더 좋을 것입니다. – Paulw11

+0

@ Paulw11 이미 그랬습니다. 드래그 할 때 unwind1을 선택했습니다. 질문은 내가 VC2와 VC3을위한 두개의 다른 nav 컨트롤러를 가지고 있다면 VC의 스택을 밀어 내고 터뜨리는 것이 같은 nav 컨트롤러에있는 것과 같을까요? nav 컨트롤러의 navbar는 어떻습니까? VC2에서 VC3으로 가면 상속받을 것입니까? NavBar에 대한 사용자 정의가 있습니다. 둘 다 그렇게해야합니까? - AKH 9 분 전 – AKH

+1

좋아, 이제 테스트 앱을 설치했다. 두 개의 nav 컨트롤러가 있더라도 VC2에서 VC3으로 전환 할 때 VC3에 내장 된 nav 컨트롤러가 아닌 VC3에 직접 연결할 수 있습니다. VC1에서 VC3으로 이동하면 VC3가 포함 된 navcontroller로 이동합니다. 필요한 경우 (예 : VC2를 입력하거나 직접 VC3을 입력 한 경우) Navbar를 사용자 정의해야합니다. 그러나 VC2에 대해 이미 사용자 정의한 경우 VC3에 대해 다시 사용자 정의 할 필요가 없습니다. – Paulw11

답변

0

내가 뭘했는지는 문제에 대한 올바른 해결책 인 것 같다. 왜냐하면 나는 그것이 8.1에서 작동한다는 것을 알아 차렸지만, ios 8.0에서는 작동하지 않는다. iOS에서 버그라고 생각합니다!

+0

내가 끝낸 것은 NSNotification을 사용하여 메시지를 보내고 topVC를 기각했다는 것이다. – AKH