我想在UIViewController中调用函数shouldAutorotateToInterfaceOrientation
之前做一些初始化。但是,在不同函数中添加一些打印输出后,这就是这些函数显然被调用的顺序:
1.- shouldAutorotateToInterfaceOrientation
2.- loadView
3.- viewDidLoad
4.- shouldAutorotateToInterfaceOrientation
(再次)
5.- viewWillAppear
...
此外,函数init
和initWithNibName
永远不会被调用(或者至少我从未得到打印输出)。
我认为init
或initWithNibName
(取决于您使用的方法)应该在shouldAutorotateToInterfaceOrientation
之前调用。但我想我错了(或者我做错了什么?)。也许这种情况正在发生,因为这个视图控制器在故事板编辑器中标记为“是初始视图控制器”吗?
在任何情况下,在UIViewController中shouldAutorotateToInterfaceOrientation
之前自动调用的函数是什么?
非常感谢你!
注意:我知道shouldAutorotateToInterfaceOrientation
自6.0以来已经过时,但我希望我的应用也与5.0兼容。
修改:我只想在shouldAutorotateToInterfaceOrientation
之前初始化一些变量,我只希望这样做一次,而不是每次都调用shouldAutorotateToInterfaceOrientation
。
答案 0 :(得分:0)
在通过覆盖此方法返回shouldAutorotateToInterfaceOrientation
或YES
之前,您可以在NO
中执行您需要执行的任何设置:
在您的实施中:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// do whatever is needed before the rotation actually happens
return YES;
}