我已经在我的代码中实现了这种方法,用于知道接口方向的改变会发生什么:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
我依赖该方法来设置视图。在iOS 4或5中,当设备方向改变时,该方法将被调用。
iOS 4还会在控制器首次加载时调用该方法(无论方向是否更改,它都会在开始时正确地调用一次)。
问题是,我注意到在iOS 5中不再这样。该方法只有在设备方向更改时才会被调用,但在控制器最初加载时不会被调用。对我来说这是个问题,因为我依赖它来根据方向设置初始视图布局。
你知道为什么行为会改变吗?应该如何处理?如果在iOS 5上的viewDidLoad中检查方向,然后手动调用willRotate和didRotate方法,这是否是最佳方式?这感觉有点像hack。
谢谢您提供的任何意见。