2010-03-12 6 views
1

내 응용 프로그램을 실행하려면 서버의 데이터가 필요합니다. 첫 번째 작업은 PersistentStoreCoordinator에 데이터가 저장되었는지 확인하는 뷰 컨트롤러 (LoadingViewController)를 표시하는 것입니다. 데이터가 로컬에 캐시되지 않으면 내 서버에서 가져 와서 캐시하고 LoadingViewController가 수신 대기한다는 알림을 게시합니다. 알림이 끝나면 LoadingViewController는 플립 애니메이션과 함께 presentModalViewController를 사용하여 응용 프로그램의 MainViewController를 표시합니다. 지금까지는 아무런 오류가 없었습니다.presentModalViewController가 항상 작동하지 않는 이유는 무엇입니까?

그러나 응용 프로그램이로드되어 데이터 IS가 캐시 된 것으로 판단하면 presentModalViewController가 작동하지 않고 기본 응용 프로그램보기가 나타나지 않습니다. 오류 없음. 로드 된 뷰에 버튼을 추가하는 것만으로도 동일한 코드가 실행되면 그 코드가 실행됩니다.

나는 그 타이밍과 관련이있다는데 의심 스럽지만, 데이터가 이미 로컬에 캐시되어 있다면 그 플립하기 애니메이션으로보기를 보장하기 위해 내가 할 수있는 일에 관해서는 단서가 없다. 어떤 제안?

+0

그래서 performAselector : withObject : afterDelay ([self performSelector : @selector (showApp) withObject : nil afterDelay : 0.0];)가 지연 0으로 사용되어 결국 작동합니다. 나는 정말로 게으르고 추한 방법으로 일을 끝내는 것처럼 보이기 때문에 오싹하지는 않습니다.하지만 대부분은 여전히 ​​[self showApp]를 호출하여 왜 작동하지 않는지 이해할 수 없으므로 –

+0

코드를 게시하십시오. 누군가 도움을 줄 수 있습니다. – cduhn

+0

비슷한 문제가 있었는데,이 performSelector : withObject : afterDelay : 실제로 작동합니다 ... – chuckSaldana

답변

0

그래서 performSelector : withObject : afterDelay ([self performSelector : @selector (showApp) withObject : nil afterDelay : 0.0];)를 사용하여 지연이 0으로 끝났습니다. 나는 정말로 게으르고 못생긴 방식으로 일을 끝내는 것처럼 보이기 때문에 오싹하지는 않습니다.하지만 대개 [self showApp]를 호출하여 작동하지 않는 이유를 아직 이해할 수 없기 때문에 주로

1

뷰 컨트롤러의 뷰의 하위 계층 구조가 서로 서브 뷰되고, 뷰가 직접적으로 뷰 아이 뷰어 창에 직접 추가되는 viewcontroller로 항상 표시하려고 시도합니다.

예 : 나는 창> VC1의보기> VC2의보기> 내가 .. 그것이 작동하지 않는 을 [VC3 presentModalViewController]를 호출하려고 할 때 그래서 VC1으로 제시했고,이 일

VC3의 견해처럼 뷰의 4 단계를했다. 나는 vc1을 대리인 역할을하는 속성으로 참조 했으므로 쉽게 액세스 할 수있었습니다.

그러나 다시 한 번 나는 실제 이유를 찾지 못했지만 이것이 나를 위해 일했다고 말할 수 있습니다.

관련 문제