如果 iPhone 的方向发生变化,首先调用哪个方法?
-(void)viewWillAppear:(BOOL)animated
- (void)viewDidLoad
如果我通过导航控制器的后退按钮回到前一个视图控制器,这些方法会被调用吗?如果按哪个顺序调用?
如果 iPhone 的方向发生变化,首先调用哪个方法?
-(void)viewWillAppear:(BOOL)animated
- (void)viewDidLoad
如果我通过导航控制器的后退按钮回到前一个视图控制器,这些方法会被调用吗?如果按哪个顺序调用?
如果你的类是 UIViewController 你可以使用这个方法:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
在 UIViewController 之外,您可以添加侦听器以获取旋转通知。
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationdidChange:) name:UIDeviceOrientationDidChangeNotification object:nil];
viewDidLoad
每当视图加载时调用。通常,如果您访问控制器的视图或将其放在屏幕上,就会发生这种情况。
当它出现时(即被推到 a 上UINavigationController
),该viewWillAppear:
方法被调用(然后是 viewDidAppear:)。
可能会发生多次加载视图的情况(例如在内存不足的情况下或视图以其他方式处理)。它可能发生,但不是必须的。viewWillAppear:
无论如何都会再次被调用(如果适用,它会在之后调用viewDidLoad
)。
反过来就没有多大意义 - 如果视图尚未加载,则无需配置或显示任何内容。