1

这是关于 AutorotateToInterfaceOrientation 的一些奇怪的事情。

在调试器控制台中,我的一个视图控制器收到此消息:

对于所有界面方向,视图控制器从 -shouldAutorotateToInterfaceOrientation: 返回 NO。它应该支持至少一个方向。

但实际上,旋转效果很好。而且消息是错误的。这是 -shouldAutorotateToInterfaceOrientation 的代码:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return ([centerPoint autoRotateFlag]||(interfaceOrientation==centerPoint.userOrientation));
}

并且要么 autoRotateFlag 简单地为真 (YES),要么如果它不是 centerPoint.userOrientation,则已将其固定为四个可接受值之一。

这已经为我工作了很长时间,并且该应用程序仍然有效。我只是不知道这条消息是从哪里来的。

任何想法?

4

1 回答 1

1

通过在我的软件中添加一些跟踪,使用 NSLog;我意识到 shouldAutorotateToInterfaceOrientation 在调用 viewDidLoad 之前被调用了七次。

由于我的变量“autoRotateFlag”仅在通过 viewDidLoad 时才被初始化。这解释了我的问题。

不过我不得不承认,我并没有想到应该在 viewDidLoad 之前调用 shouldAutorotateToInterfaceOrientation。显然我错了。而且我仍然不完全理解所有这些方法的调用顺序。

于 2012-05-25T01:23:18.373 回答