UITabBarController和UINavigation控制器的iOS8旋转问题
我有一个iOS8的问题。
这里我有我的视图层次结构。
Window ==> UITabBarController ==> 2 Tab Tab 1 ==> UINavigationController1 ==> UIViewController1作为根视图控制器Tab 2 ==> UINavigationController2 ==> UIViewController2作为根视图控制器
现在一切工作都完美了。
但问题是这个testing步骤:
- 将日志logging在两个ViewController的viewDidLoad方法中,用于跟踪事件
- 启动应用程序
- FirstViewController的viewDidLoad将会调用。 现在只停留在这个视图上。
- 旋转到风景。
- 这是神奇的一部分。 SecordViewController的viewDidLoad方法被调用,它还没有被Tab2激活,然后它也加载了viewDidLoad。
这个问题只在iOS8上。
testing所有设备。
我有同样的问题。 我注意到,在iOS8上,当设备的方向改变时, viewWillTransitionToSize:withTransitionCoordinator:在UITabBarController上调用,UITabBarController调用尚未加载的任何viewcontroller的viewDidLoad方法。
现在,在我的UITabBarController子类中,我重写了这个方法,不要调用[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]。
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { //Do not call [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]; NSLog(@"Device orinetation changed"); }