视图不会从iPad上消失,但在iPhone上运行正常

时间:2013-07-03 22:53:32

标签: ios objective-c ipad

以下是第一个建议,但仍然经历过问题:我从开发人员那里继承了一些iPhone应用程序,现在我是开发人员,技能很少。我正试图将其中一个iPhone应用程序转换为通用(iPhone和iPad),我几乎就在那里,只有一个问题:我有一个正确消失在iPhone上的视图,但不是在iPad上。希望有人在这里帮助我,我一直在努力解决这个问题(希望有一个相当简单的解决方案)3天以上,我想我已经全力以赴了。 :)

我被告知其中一些是旧代码,这可能是真的,但由于这个问题阻止我提交到应用程序商店,我宁愿避免重大/重新设计解决方案。所以这就是正在发生的事情(对于这篇文章中的时髦格式提前道歉,不确定为什么代码不是全部采用编码格式,时髦的子弹编号等):

  1. 应用程序从我的主视图控制器(MyAppViewController)开始,它有一个“播放”按钮,可以启动游戏。点击“播放”按钮时,以下代码将实例化游戏视图控制器:

    mainGameViewControllerIpad = [[MainGameViewControllerIpad alloc]                               initWithNibName:无                               捆绑:无]; [self.view addSubview:mainGameViewControllerIpad.view];

  2. 这将打开视图MainGameViewControllerIpad,用户可以玩游戏。

    1. 游戏结束后,MainGameViewControllerIpad中的代码执行此操作:

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

      [self.view addSubview:gameStatsViewControllerIpad.view];

      [gameStatsViewControllerIpad setStatsDisplay];

    2. 这会打开游戏统计视图,告诉用户他们在刚刚玩过的游戏中是如何做到的。所以你有介绍屏幕视图,然后游戏视图控制器作为其子视图,统计屏幕作为游戏视图的子视图。这适用于iPhone和iPad。

      所以这里的事情变得奇怪:

      1. 当用户查看完他们的统计信息后,他们点击统计信息页面上的“完成”按钮,然后运行以下代码:
      2. [self dismissViewControllerAnimated:YES completion:nil]; [self.view release];

        这就是问题:在iPhone上,这会关闭Stats视图,我假设因为stats视图是MainGameViewController的子视图,该视图也会消失,并且用户返回到MyAppViewController。这是正确的。

        然而,在iPad上,当上面的代码运行时,它会关闭立即的Stats视图,但一旦它消失,它就会显示MainGameViewController视图仍然可见 - 换句话说,在iPhone上,上面的代码关闭子视图和它的容器视图,但在iPad上,它不会关闭父/超级视图。

        任何人都有关于如何让MainGameViewController也能在iPad上运行的相当简单的建议?提前感谢任何见解/建议!

1 个答案:

答案 0 :(得分:0)

只需关闭模态视图而不是删除它。

[self dismissViewControllerAnimated:YES completion:nil];