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

时间:2011-04-25 20:29:05

标签: objective-c opengl-es modalviewcontroller

我有一个带工具栏的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];

2 个答案:

答案 0 :(得分:1)

你不应该

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

您也不需要removeSubview方法。模态视图应该用于处理它的表示。所以你的错误可能在其他地方。

关于解雇,你在哪里打电话:

[self dismissModalViewControllerAnimated:YES];

这意味着要发送到视图控制器,该视图控制器预先使用模态视图控制器,即父视图控制器。通常,您将父项设置为委托,然后调用从父项中解除当前模态视图的方法。

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

[self.presentingViewController dismissModalViewControllerAnimated:YES];

答案 1 :(得分:0)

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