首先,我的代码并不复杂 - 实际上它只是来自“开始iPhone开发:探索iPhone SDK”中的两个sample programs,结合到一个程序中。我使用了ViewSwitcher应用程序,它在蓝色视图和黄色视图之间切换,并用相机应用程序中的CameraViewController替换了YellowViewController。
我总共有三个ViewControllers。 SwitchViewController只是在BlueViewController和CameraViewController之间切换。
在CameraViewController中,我正在尝试使用UIImagePickerController来选择图像。选择器带有presentModalViewController。问题是,我希望以横向方式做到这一点。
在2.2.1下一切正常,在纵向模式下一切正常,3.0。
然而,在景观导向下的3.0中,事情就会破裂。如果我将SwitchViewController设置为横向,当我尝试呈现选择器时,我的屏幕会变白。如果我将iPhone旋转几次,我可以看到拾取器的一角,显然是在屏幕上显示。
如果我将CameraViewController设置为横向,则拾取器根本不会出现。
我认为this page可能有一个线索,它说“我可以看到的最突出的变化[3.0]是模态视图控制器总是使用应用程序框架而不是父视图控制器的框架。”但我并不完全明白这意味着什么。
非常感谢任何帮助。谢谢!
答案 0 :(得分:0)
我相信这意味着:模态视图总是使用全屏,即使调用它们的父视图控制器控制只是屏幕一部分的视图。这对于像摄像机选择器这样的标准模态视图是有意义的,但我可以看到为什么创建自定义模态视图的人可能希望它更小。
不确定这是否真的有助于解决您的问题。
问题 - 如果您调出模态视图然后旋转手机会怎样?
答案 1 :(得分:0)
您必须在父视图控制器中使用addSubview
,尝试使用presentModalViewController:
。