【发布时间】:2010-04-12 11:39:22
【问题描述】:
我正在尝试根据设备旋转在我的应用中实现一些界面更改。
我的应用是基于视图的应用。所以,它的主视图控制器有一个 didload 方法。
应用以纵向启动。几乎所有对设备方向的更改都会触发 shouldAutorotateToInterfaceOrientation 方法,但是当设备从任何横向方向放置为纵向时,不会调用此方法。
在调试应用程序时,我放了一个
NSLog(@"orientation=%d", interfaceOrientation);
在我的 shouldAutorotateToInterfaceOrientation 方法上,我看到的很奇怪:
- 当我运行应用程序时,shouldAutorotateToInterfaceOrientation 在应用程序界面出现之前被调用了 6 次。每次运行时,它都会报告一个不同的方向数字:它在控制台上报告的顺序是:纵向、纵向、纵向、横向右侧、横向左侧、倒置)(????)。
在此期间,应用程序才刚刚开始。调试器报告来自应用委托的所有 6 个调用。
那么,问题来了:
- 为什么当设备进入纵向时不调用 shouldAutorotateToInterfaceOrientation?
- 为什么代理在应用程序可见之前调用此方法 6 次,特别是在没有进行旋转时?
谢谢。
【问题讨论】:
标签: iphone iphone-sdk-3.0 ipad