2014-01-10 5 views
0

2 개의 스레드가있는 Obj-C iPhone 앱이 있습니다. 물론 첫 번째 스레드는 GUI를 포함합니다. 두 번째 스레드는 많은 작업을 수행하고 어떤 시점에서는 모달 UIViewController를 표시하는 주 스레드에서 메서드를 실행합니다. 나는이 UIVC 애니메이션 표시 할 것이지만, 그 순간의 GUI는이 경우 내가여러 스레드의 뷰 전환을 결합하는 방법은 무엇입니까?

Uncaught exception: Attempting to begin a modal transition from <UINavigationController: 0x180dbb20> to <UINavigationController: 0x17f3c810> while a transition is already in progress. Wait for viewDidAppear/viewDidDisappear to know the current transition has completed 

을 얻을하는 UIVC (사용자가 바로 응용 프로그램을 탐색 할 수 있기 때문에)를 기각의 상태에있을 수 있습니다 이 문제를 해결할 올바른 방법은 무엇입니까?

답변

1

애니메이션, 당신은 내가 아니라 애니메이션 않고 새 VC를 제시하지 않는 게 좋을

-viewDidAppear { 
    double delayInSeconds = 0.1; 
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); 
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
     [self present]; 
    }); 
+0

NO

에 존재하는 애니메이션이나 설정 푸시 애니메이션을 지연하려고 할 수 mainThread

의 모든 실행 사용자가 잠시 나타나기를 기대하지만 앱 사용에 방해가되므로 정상적으로 표시되어야합니다. 당신의 솔루션은 훌륭하게 작동했습니다. – marcelnijman

관련 문제