2011-03-18 6 views
0

UITabBarController의 뷰에서 여러 모달 컨트롤러를 연결하는 방법은 무엇입니까? > 한 아이의 UIViewController입니다 -UITabBarController에서 시작한 컨트롤러에서 모달 뷰를 체인화하는 방법

UITabBarController가가 애플에서보기 프로그래밍 가이드이 가능하다라고하지만 난 그런 작업을 시도 할 때, 나는 오류,

"*Assertion failure in -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:], /SourceCache/UIKit_Sim/UIKit-1447.6.4/UIWindowController.m:186 

클래스 계층 구조는 다음과 같이이다 상속 된 클래스, Tab1Controller.

Tab1Controller -> 모달로 표시해야하는 2 개의 컨트롤러 각각을 조정합니다. 1 모달 UIViewController를 시작하고 완료되면 (콜백을 통해 호출됩니다.)이를 취소 한 다음 다른 모달 UIViewController를 시작합니다.

두 모달 컨트롤러가 끝나고 시작하는 사이에 충분한 시간이없는 것처럼 보입니다.

다른 모달 컨트롤러를 연결 한 후 모달 컨트롤러를 연결하는 방법을 보여주는 샘플 코드가 있습니까?

답변

0

두 모달 컨트롤러가 끝나고 시작하는 사이에 충분한 시간이없는 것처럼 보입니다.

머리에 못을 박은 것 같습니다. 이전 모달보기가 사라질 때까지 새 모달보기 컨트롤러를 표시 할 수없고 이전 모달보기로 덮여 있던보기 컨트롤러에서 viewDidAppear: 메서드가 호출 될 때까지 새 모달보기 컨트롤러를 표시 할 수 없습니다.

또 다른 옵션은 두 번째 모달보기를 첫 번째 모달보기의 맨 위에 표시하는 것입니다.

[firstModalViewController presentModalViewController:secondModalViewController animated:YES] 

그런 다음 (처음으로 돌아) 두 번째를 닫 [firstModalViewController dismissModalViewControllerAnimated:YES]를 호출 할 수 있습니다, 또는 [self dismissModalViewControllerAnimated:YES] 한 번에 모두 기각한다.

0
// present modal view inside another presented modal view 

    FirstViewController *firstVC = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil]; 
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController: firstVC]; 

    // Note: you can use your viewcontroller instead self.window.rootViewController 

    [self.window.rootViewController presentViewController:navController animated:YES completion:^{ 
       //code... 
        SecondViewController *secondVC = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 

        [navController presentViewController: secondVC animated:YES completion:nil]; 

       } 
      }]; 
+0

이 코드를 포맷하십시오 (이 그대로 읽을 수 있어요) – kleopatra

관련 문제