以下是第一个建议,但仍然经历过问题:我从开发人员那里继承了一些iPhone应用程序,现在我是开发人员,技能很少。我正试图将其中一个iPhone应用程序转换为通用(iPhone和iPad),我几乎就在那里,只有一个问题:我有一个正确消失在iPhone上的视图,但不是在iPad上。希望有人在这里帮助我,我一直在努力解决这个问题(希望有一个相当简单的解决方案)3天以上,我想我已经全力以赴了。 :)
我被告知其中一些是旧代码,这可能是真的,但由于这个问题阻止我提交到应用程序商店,我宁愿避免重大/重新设计解决方案。所以这就是正在发生的事情(对于这篇文章中的时髦格式提前道歉,不确定为什么代码不是全部采用编码格式,时髦的子弹编号等):
应用程序从我的主视图控制器(MyAppViewController)开始,它有一个“播放”按钮,可以启动游戏。点击“播放”按钮时,以下代码将实例化游戏视图控制器:
mainGameViewControllerIpad = [[MainGameViewControllerIpad alloc] initWithNibName:无 捆绑:无]; [self.view addSubview:mainGameViewControllerIpad.view];
这将打开视图MainGameViewControllerIpad,用户可以玩游戏。
游戏结束后,MainGameViewControllerIpad中的代码执行此操作:
GameStatsViewControllerIpad * gameStatsViewControllerIpad = [[GameStatsViewControllerIpad alloc] init]; [gameStatsViewControllerIpad setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; [self presentModalViewController:gameStatsViewControllerIpad animated:YES];
[self.view addSubview:gameStatsViewControllerIpad.view];
[gameStatsViewControllerIpad setStatsDisplay];
这会打开游戏统计视图,告诉用户他们在刚刚玩过的游戏中是如何做到的。所以你有介绍屏幕视图,然后游戏视图控制器作为其子视图,统计屏幕作为游戏视图的子视图。这适用于iPhone和iPad。
所以这里的事情变得奇怪:
[self dismissViewControllerAnimated:YES completion:nil]; [self.view release];
这就是问题:在iPhone上,这会关闭Stats视图,我假设因为stats视图是MainGameViewController的子视图,该视图也会消失,并且用户返回到MyAppViewController。这是正确的。
然而,在iPad上,当上面的代码运行时,它会关闭立即的Stats视图,但一旦它消失,它就会显示MainGameViewController视图仍然可见 - 换句话说,在iPhone上,上面的代码关闭子视图和它的容器视图,但在iPad上,它不会关闭父/超级视图。
任何人都有关于如何让MainGameViewController也能在iPad上运行的相当简单的建议?提前感谢任何见解/建议!
答案 0 :(得分:0)
只需关闭模态视图而不是删除它。
[self dismissViewControllerAnimated:YES completion:nil];