这是关于AutorotateToInterfaceOrientation的奇怪之处。
在Debugger控制台中,我收到了一个视图控制器的消息:
视图控制器从中返回NO -shouldAutorotateToInterfaceOrientation:适用于所有界面方向。它应该支持至少一个方向。
但实际上旋转效果非常好。这个消息是错误的。这是-shouldAutorotateToInterfaceOrientation的代码:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return ([centerPoint autoRotateFlag]||(interfaceOrientation==centerPoint.userOrientation));
}
并且autoRotateFlag只是true(YES),或者如果它不是centerPoint.userOrientation已被固定为四个可接受值中的一个。
这已经为我工作了很长时间,应用程序仍然有效。我只是不知道这条消息来自哪里。
有什么想法吗?
答案 0 :(得分:1)
通过在我的软件中添加一些跟踪,使用NSLog;我意识到 shouldAutorotateToInterfaceOrientation之前被调过七次 viewDidLoad被调用。
因为我的变量'autoRotateFlag'仅在通过viewDidLoad时被初始化。这解释了我的问题。
我不得不承认,我还远没有想到可以在viewDidLoad之前调用AutorotateToInterfaceOrientation。 显然我错了。我仍然不完全理解调用所有这些方法的顺序。