- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
我的代码在设备旋转时不止一次地获取此事件。我在Apple文档中搜索,但似乎没有运气。任何人都可以提示为什么会发生这种情况吗?
我的代码是Apple doc示例代码(AlternateViews),除了一些日志之外没有任何更改。
答案 0 :(得分:4)
如果您为某个方向返回NO,它会继续尝试,直到您返回YES。例如,如果您为横向右侧返回NO,则可以尝试向左横向。如果你为一切返回NO,那么它将不会旋转。并且可以在任意时间调用该方法,而不是严格地在旋转发生时调用。例如,当一个新视图弹出到导航控制器上时,即使没有发生旋转,也会查询新视图。
答案 1 :(得分:3)
我是iPhone开发人员的新手,但我认为它被多次调用的原因是shouldAutorotateToInterfaceOrientation
不是一个事件。它只是意味着取UIInterfaceOrientation
并返回YES
或NO
,具体取决于是否支持自动旋转。
Apple docs显示UIInterfaceOrientation
定义为:
typedef enum {
UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight,
UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft
} UIInterfaceOrientation;
因此,您应该覆盖该方法的所有方法是检查interfaceOrientation
上述一个或多个方法,并说明视图是否应该自动旋转。