기본 전환을 사용하여 첫 번째 모델 컨트롤러를 표시 할 수 있습니다. 두 번째 모델보기가 첫 번째 모델보기와 동일한보기 컨트롤러에서 할당되고 초기화되는 것 같습니다. 이 경우 첫 번째 모델보기 제어기에 두 번째 모달보기 제어기가 표시되도록 코드를 리팩토링하십시오. 이렇게하면 원하는 것처럼 다른 것을 표시 할 수 있습니다.
두 개의 모달보기 컨트롤러를 동일한 루트보기 컨트롤러에 표시하는 코드를 유지해야하는 경우 대리자 메서드를 만들 수 있습니다. 이렇게하면 첫 번째 모달보기 컨트롤러에서 첫 번째 모달보기 컨트롤러에 대한 참조를 전달하여이를 제시 한 루트보기 컨트롤러로 메시지를 보냅니다. 그런 다음이 참조를 사용하여 첫 번째 모달보기 컨트롤러에 두 번째 모달보기 컨트롤러를 표시하도록 알려줍니다.
전주기를 도입 할 기회가 적어 논리적으로 명확 해 졌기 때문에 전 솔루션을 추천합니다.
귀하의 해명에 대응
:
이 둘 사이에 전환을 시도 :
이미 이전 세션에서 표시됩니다 당신의 ModalViewControllerOne
경우에 : 당신의 rootViewController의 -viewDidAppear:
에서
self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self dismissModalViewControllerAnimated:YES];
첫 번째 모달보기 컨트롤러를 다시 루트보기 컨트롤러로 교차 분해 한 다음 새로운 모달보기 컨트롤러를 즉시 화면에 크로스 디졸브하는 것입니다.
스플래시 화면간에 다른보기 인 경우 두 개의보기 컨트롤러 대신 하나의보기 컨트롤러를 사용하여 입력 된 URL에 따라 다른보기를 한 화면 씩 스왑하고 애니메이션을 사용할 수 있습니다 보기간에 스와핑 할 때.
이 모달 디스플레이는 본질적으로 다른 스플래시/로그인 화면입니다. 앱을 입력하는 데 사용 된 URL에 따라 다른 모달 얼룩이 표시됩니다. 따라서 스플래시 1이 앱의 이전 사용에서 올라와 스플래시 2를 요청하는 URL에서 앱을 입력하면 스플래시 1에서 스플래시 2로 부드럽게 전환하고 싶습니다. – FishStix
답변을 업데이트했습니다. – Andrew
나는 하나의 UINavigationController를 "modalController"로 추적하고 하나의 delegate 메소드에 ViewControllers 스택을 전달하고 window.rootController에 "presentController"가있는 경우 modalController를 표시하고 viewControllers를 애니메이션으로 바꿉니다. 그렇지 않으면 여전히 modalController의 뷰 컨트롤러를 설정하고 window를 호출합니다.rootController presentModalViewController : modalController – FishStix