设备方向改变时调用的方法

时间:2013-09-10 16:25:00

标签: ios

如果iPhone的方向改变了哪个方法首先被调用?

-(void)viewWillAppear:(BOOL)animated
- (void)viewDidLoad

如果我通过导航控制器的后退按钮回到上一个视图控制器,这些方法被称为?如果按哪个顺序调用?

2 个答案:

答案 0 :(得分:1)

如果你的类是UIViewController,你可以使用这个方法:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

在UIViewController之外,您可以使用addListener进行轮换通知。

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    [[NSNotificationCenter defaultCenter] addObserver:self     selector:@selector(orientationdidChange:) name:UIDeviceOrientationDidChangeNotification object:nil];

答案 1 :(得分:0)

只要视图加载,就会调用

viewDidLoad。通常,如果您访问控制器的视图或将其放在屏幕上,则会发生这种情况。

当它出现时(即被推到UINavigationController上),viewWillAppear:方法被调用(和viewDidAppear:之后)。

可能会多次加载视图(例如,在低内存条件下或者视图以其他方式处置)。它可能发生,但它不必。无论如何viewWillAppear:将被再次调用(如果适用,它会在viewDidLoad之后调用。)

反过来没有多大意义 - 如果视图尚未加载,则没有任何配置或让它出现。