2010-08-20 5 views
0

최상위 뷰가 바로 SplashView를 ViewWillAppear 메서드에 푸시합니다. 일부 조건에서는 SplashView가 제대로 표시되는 추가보기를 푸시합니다. 이 경우 최상위 레벨보기가 나타나지 않습니다.PopViewController 팝업 뷰가 표시되지 않습니다.

그러나 최상위 수준의 코드가 실행되고 있습니다 (로그에 기록하는 매분마다 발생하는 타이머가 있음). 디버그에 함정을 넣으면 코드가 실행되는 것을 볼 수 있습니다. 또한 최상위 수준 ViewDidAppear에서 [self navigationController].visibleViewController.nibName을 기록하면 최상위 이름이 나타납니다.

SplashView에서 밀어 넣기를 수행하지 않으면 모든 것이 정상적으로 작동합니다.

앱이 가로 모드로 강제 설정되며 각 ViewController에 shouldAutorotateToInterfaceOrientation 메소드의 경우 return UIInterfaceOrientationIsLandscape(interfaceOrientation);이 포함됩니다.

나는 당황하고 다음에해야할 일을 모릅니다. 제안?

답변

0

왜 이것이 발생했는지 정확히 알지 못했지만 문제를 해결했습니다. 추가 디버깅에서 알아 차린 몇 가지 사항은 다음과 같습니다.

  • 로그에서 메시지 wait_fences: failed to receive reply: 10004003을 발견했습니다. 이것에 대한 블로그 스캔은 나에게 많은 도움이되지 못했지만 그 길을 더 멀리 이끌었다. 그것에 대한 참조는 UIAlertView와 관련된 문제를 보여주었습니다. UIAlertView는 Splash보기에 포함되어 있습니다.
  • ViewDidAppear 로직을 스플래시보기에 추가 한 다음 두 번 호출되는 것을 확인했습니다! 그런 다음 논리를 추가하여이 작업을 한 번만 수행하면 문제가 해결되었습니다!

그래서 분명히 내 초기 문제를 생성 한 View가 두 번 호출되는 몇 가지 단점이 있습니다. 참조 된 발견은 이것이 '오래된'OS 문제 였음을 암시하지만 xcode 3.2.3과 SDK 4.0.2를 사용하고 있습니다. 아마도 돌아 왔습니다! 이런, SDK 4.0.1로 이것을하는 것을 기억하지 못합니다!

관련 문제