麻烦呈现和解散模态视图控制器

问题描述:

我有一个带有工具栏的OpenGL-ES应用程序。当我触摸我的工具栏上的配置图标,我的应用程序显示一个视图和一帮用下面的代码配置选项:麻烦呈现和解散模态视图控制器

optionsControllerOutlet.modalPresentationStyle = UIModalPresentationFullScreen; 
optionsControllerOutlet.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self.glView.superview addSubview:optionsControllerOutlet.view]; 
[self presentModalViewController:optionsControllerOutlet animated:YES]; 

,当我尝试关闭该视图,下面的代码被执行:

[self dismissModalViewControllerAnimated:YES]; 

除了动画从过渡中丢失以外,视图正常显示。当我试图驳回这个观点时,没有任何反应。任何想法为什么没有动画,它不是解雇?我只是开始围绕视图控制器包装头以及如何使用它们。我可以得到它通过使用下面的行驳回视图的工作,但我希望得到这个工作正常:

[optionsControllerOutlet.view removeFromSuperview]; 

你不应该需要

[self.glView.superview addSubview:optionsControllerOutlet.view] 

也不应该需要removeSubview方法。模态观点应该照顾它的表现。所以你的错误可能在别的地方。

关于解雇,你在哪里调用:

[self dismissModalViewControllerAnimated:YES]; 

这意味着被发送到presesnts模态视图控制器视图控制器,即父视图控制器。通常情况下,您将父级设置为委托,然后调用从父级内部取消当前模态视图的方法。

或者,如果你想从模态视图本身调用它,它可以运行:

[self.presentingViewController dismissModalViewControllerAnimated:YES];

摆脱[self.glView.superview addSubview:optionsControllerOutlet.view]。 ?

+0

如果我这样做,它仍然运行,但不显示我的看法。我还应该补充说这是一个基于窗口的应用程序,而不是一个基于视图的应用程序,所以我不确定如何改变我需要的方法。 – Davido 2011-04-25 20:37:11