2013-07-03 1 views
0

다음 제안 사항에 위양 됨, 계속 문제 발생 : 개발자로부터 일부 iPhone 응용 프로그램을 상속 받았으며 지금은 거의 기술이없는 개발자입니다. 나는이 아이폰 앱 중 하나를 유니버설 (iPhone & iPad)으로 변환하려고하고 있는데, 거의 한 가지 문제 만있다. 나는 아이폰에서는 올바르게 보이지 만 iPad에서는 보이지 않는다. 여기있는 사람을 원하면 나를 도울 수 있습니다. 나는 3 일 이상이 문제 (상당히 간단한 해결책이 있음)로 고심하고 있었고, 제 머리카락을 모두 꺼냈다 고 생각합니다. :)iPad에서보기가 사라지지 않지만 iPhone에서 잘 작동합니다.

나는이 코드 중 일부가 사실일지도 모른다고 말했지만이 한 가지 문제로 앱 스토어에 제출하지 못하게되어 큰 리팩토링/재 설계 솔루션을 피할 수 있습니다. 지금.

  1. 앱 내 주에서 시작 : 그래서 여기에 무슨 일이 일어나고 있는지 (이 게시물에 펑키 서식을 사전에 사과, 코드는 모든 코드 형식으로 않을 것입니다 확실하지 왜, 펑키 글 머리 기호 번호 등)의 뷰 컨트롤러 (MyAppViewController)에는 게임 플레이를 시작하는 "재생"버튼이 있습니다. [: 번들 전무 [MainGameViewControllerIpad ALLOC] initWithNibName 닐]

    mainGameViewControllerIpad = "재생 버튼을 탭하면, 다음의 코드는 플레이 뷰 컨트롤러를 인스턴스화; [self.view의 addSubview : mainGameViewControllerIpad.view];

이는보기 MainGameViewControllerIpad을 열어, 사용자는 게임을 재생합니다.

  1. 게임 라운드 전자 번 nds에서 MainGameViewControllerIpad의 코드는 다음을 수행합니다.

    GameStatsViewControllerIpad * gameStatsViewControllerIpad = [[GameStatsViewControllerIpad alloc] init]; [gameStatsViewControllerIpad setModalTransitionStyle : UIModalTransitionStyleCrossDissolve]; [self presentModalViewController : gameStatsViewControllerIpad animated : YES];

    [self.view addSubview : gameStatsViewControllerIpad.view];

    [gameStatsViewControllerIpad setStatsDisplay];

이렇게하면 게임 통계보기가 열리고 방금 전에 한 라운드에서 어떻게했는지 알 수 있습니다. 따라서 인트로 화면보기, 게임 플레이보기 컨트롤러를 하위보기로, 통계 화면을 게임 플레이보기의 하위보기로 사용할 수 있습니다. 이것은 iPhone과 iPad 모두에서 잘 작동합니다. 상황이 이상한 얻을 곳

그래서 여기 :

  1. 사용자가 자신의 통계를 볼 완료되면, 그들은 통계 페이지에서 "완료"버튼을 누른 다음 코드를 실행합니다 :

[self dismissViewControllerAnimated : 예 완료 : 없음]; [self.view release];

그래서 여기에 문제가있다 : 아이폰에, 이것은 통계보기를 닫고, 나는 통계보기 때문에이 MainGameViewController의 서브 뷰가 있으리라 믿고있어, 해당 뷰뿐만 아니라 사라지고, 사용자가 MyAppViewController에 반환 . 이것은 정확합니다.

위의 코드가 실행되면 즉시 통계보기가 닫히지 만 일단 사라지면 MainGameViewController보기가 계속 표시됩니다. 즉, 위의 코드는 iPhone에서 볼 수 있습니다. 하위보기를 닫으면 컨테이너보기이지만, iPad에서는 부모/수퍼보기를 닫지 않습니다.

누구나 iPad에서 작동하도록 MainGameViewController를 얻는 방법에 대한 간단한 제안 사항이 있습니까? 모든 통찰력/제안에 미리 감사드립니다!

답변

0

모달 뷰를 제거하지 말고 그냥 닫으십시오.

[self dismissViewControllerAnimated:YES completion:nil]; 
+0

답장을 보내 주셔서 감사합니다. DCGod! 그냥 이해하고있어, 대체해야한다는 뜻인가요? [self.view removeFromSuperview]; 다음으로 : [self dismissViewControllerAnimated : YES 완료 : nil]; 그 제안입니까? 나는 그것을 시도하고 통계 페이지에서 "done"버튼을 클릭했을 때 화면에 뷰 컨트롤러가 전혀없는 것처럼 앱 화면이 거의 흰색으로 바뀌었다. 마치 현재보기가 포함 된 두 개의 수퍼 뷰도 해고 된 것처럼 보입니다. 이 명령으로 모든 viewController를 제거 할 수 있습니까? – AppHopper

+0

조금 더 자세하게 설명합니다. 그래서 당신이 제안한 명령을 추가하고 내 코드는 다음과 같이 보입니다 : [self dismissViewControllerAnimated : YES completion : nil]; //[self.view removeFromSuperview]; [self.view release]; 결과 : '완료'버튼을 한 번 클릭해도 아무런 문제가 발생하지 않습니다. 두 번, 아직 아무것도. 그런 다음 세 번째 클릭에서 현재 통계보기가 사라지고 앱의 모든보기 컨트롤러가 해제 된 것처럼 앱 화면이 완전히 흰색으로 바뀝니다. 의견이 있으십니까? 감사! – AppHopper

+0

이 세 번의 클릭에 관해서는 첫 번째 클릭에서 가장 아래쪽의보기 컨트롤러가 흐려진 것처럼 두 번째 클릭, 중간 클릭, 마지막으로 버튼 클릭에서 최상위보기 컨트롤러가 해제됩니다 일단 사라지면 뷰 컨트롤러가 표시되지 않습니다. 그게 실제로 일어날 수 있습니까? 매우 이상하다! 이견있는 사람? 고마워! – AppHopper

관련 문제