我有一个带工具栏的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];
答案 0 :(得分:1)
你不应该
[self.glView.superview addSubview:optionsControllerOutlet.view]
您也不需要removeSubview方法。模态视图应该用于处理它的表示。所以你的错误可能在其他地方。
关于解雇,你在哪里打电话:
[self dismissModalViewControllerAnimated:YES];
这意味着要发送到视图控制器,该视图控制器预先使用模态视图控制器,即父视图控制器。通常,您将父项设置为委托,然后调用从父项中解除当前模态视图的方法。
或者,如果您想从模态视图本身调用它,则可以运行:
[self.presentingViewController dismissModalViewControllerAnimated:YES];
答案 1 :(得分:0)
摆脱[self.glView.superview addSubview:optionsControllerOutlet.view]; ?