麻烦呈现和解散模态视图控制器
问题描述:
我有一个带有工具栏的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]。 ?
如果我这样做,它仍然运行,但不显示我的看法。我还应该补充说这是一个基于窗口的应用程序,而不是一个基于视图的应用程序,所以我不确定如何改变我需要的方法。 – Davido 2011-04-25 20:37:11