问候,
这个问题似乎确实是 iphone SDK 世界中一个正在进行的传奇......所以这是我的贡献......
从同一个模板有两个独立的项目......一个半工作,另一个根本没有......请让我解释我的步骤......
使用这个基本的 GL ES 模板 //iphonedevelopment.blogspot.com/2008/12/opengl-project-template-for-xcode.html 必须整理一些“发布”配置,但除此之外,我需要添加方向一个 GL ES 项目。
我的第一个项目,做了我的东西,然后添加了这些方法....
-(BOOL)shouldAutoRotateToInterfaceOrientation .....
-(void)willRotateToInterfaceOrientation ....
-(void)didRotateFromInterfaceOrientation ....
-(void)willAnimateRotationToInterfaceOrientation ....
并了解他们在做什么(或在我的情况下试图做什么),(BOOL)应该......在创建视图控制器时被调用一次,并返回“是”。但在那之后,没有其他方法被调用!
所以我从头开始使用一个空白模板(上面的 GL ES 模板)......并添加了支持自动旋转的最小值。但是这次没有一个方法被调用!
所以我调查了.... //developer.apple.com/iphone/library/qa/qa2010/qa1688.html 正如它所说,我首先添加了 GLViewController.view,然后将 GLview 添加为应用程序委托的子视图。没有什么!
然后找到这个 //www.iphonedevsdk.com/forum/iphone-sdk-development/44993-how-determine-ipad-launch-orientation.html 声明启用方向通知
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
然后随后在视图控制器中禁用它们......很有意义......做到了,什么都没有......
我认为通知可能默认打开,因为我不需要在第一个项目中启用它们,但它仍然尝试验证方向(即 (BOOL)shouldAutoRotate...)...
如果有人可以帮助我,将不胜感激,因为这个问题让我发疯。提前致谢。
代码可以在这里找到... http://rapidshare.com/files/392053688/autoRotation.zip
NB 这些项目避免使用 nib/xib 资源,如果可能的话,希望保持这种方式。
PS iPad 设备不在我所在的位置,所以我还不能在设备上进行测试。在模拟器上工作会很好。