2011-01-22 1 views
0

문제는 다음과 같습니다. 내 applicationDidEnterBackground에서 뷰 콘트롤러를 모달로 표시합니다 (예 : viewcontroller A.). 앱이 시작될 때마다 화면에 A가 표시됩니다. 이제 앱을 실행하는 동안 다른 뷰 컨트롤러 (예 : 뷰 콘트롤러 B)가 모달로 표시되고 앱이 백그라운드로 전송 된 다음 앱을 다시 실행하면 A가 표시되지 않습니다. 그리고 그것이 문제입니다.2 개의 모달 viewcontroller를 연속적으로 표시하면 두 번째 것은 나타나지 않습니다.

서로 다른 viewcontrollers에서 A와 B를 표시하고, B가 화면 상 B면 A를 표시하고, 지연 후 A를 표시하고, B를 서브 클래스로 만들고, 응용 프로그램이 활성화 될 때 A로 표시하는 것을 포함하여 모든 종류의 다른 것들을 시도했습니다. 아무것도 작동하지 않는 것 같습니다. 나는 완전히 잃어 버렸고 그것이 버그인지 궁금해. 어떤 아이디어?

+0

당신은 당신이 그 모달 뷰 컨트롤러를 제공하기 위해 사용하는 코드를 게시 할 수 있습니까? – EmptyStack

+0

실제로보기에는 코드가별로 없으며,보기 콘트롤러를 모달로 표시하기 만하면됩니다. 그들 각각은 완벽하게 작동합니다. 다른 하나는 존재하지 않으며 그들은 서로 충돌하게 만듭니다. – tux91

+2

나는 비슷한 문제를 몇 번이나 뒤로 가지고있었습니다. 사실 두 개의 modalViewController를 동시에 표시하려고하면 첫 번째 modalViewController가 단독으로 표시됩니다. 두 번째는 발표되지 않을 것입니다. (예 :'한 번에 하나의 modalViewController 만 제공 할 수 있습니다. ') – EmptyStack

답변

0

두 개의 모달보기가 표시되지 않도록 응용 프로그램을 다시 작성하십시오. 2 개의 모달을 제시 할 수 없으므로 선택해야합니다.

대개 presentModal을 사용했던 것과 유사한 뷰 컨트롤러의 전환 효과를 애니메이션으로 만들 수 있습니다.

+0

앱이 정상적으로 실행 중일 때 실제로 두 개의 모달보기 컨트롤러를 표시 할 수 있습니다. 문제는 다른 뷰 컨트롤러가 이미있는 경우 배경 또는 전경을 입력 할 때 모달 뷰 컨트롤러를 표시 할 수 없다는 것입니다. 배경을 입력 할 때 모달 뷰 컨트롤러를 닫을 수 있도록 응용 프로그램을 다시 작성해야했습니다. 다른 방법이없는 것처럼 보입니다. – tux91

0

내가 작성한 MDFPResenter 클래스를 확인하십시오. UIViewController 메서드 대신 제시하는 데 사용합니다. UIViewController 메서드를 호출하지만 호출이 제대로 대기하도록하여 응용 프로그램이 충돌하지 않도록합니다.

https://github.com/mpdifran/MDFPresenter