如果在iOS 8中更改topviewcontroller的方向,则不会调用NavigationController willRotateToInterfaceOrientation

时间:2014-11-25 13:04:13

标签: ios objective-c

我的应用是基于导航的应用。我扩展了UINavigationController并在NavigationController和各个ViewControllers中实现了以下方法。

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration - (无效)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation

当方向改变发生时在iOS 7中,调用导航控制器的第一个旋转方法,然后调用来自Actual viewcontroller的相同方法。我非常需要这个。

如果 iOS8 ,只有来自Viewcontroller的旋转方法被调用而不是导航控制器。

注意:我也没有使用任何ios 8特定的定位方法。因为我已经改变了很多东西。所以请不要建议我实现以下 - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator

1 个答案:

答案 0 :(得分:-1)

该方法已从ios 8中弃用

在执行一步式用户界面旋转之前发送到视图控制器。

Use viewWillTransitionToSize:withTransitionCoordinator: to make interface-based adjustments.

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
                                         duration:(NSTimeInterval)duration

另请注意,当我们收到此通知时,视图已更改为新方向。

更多参考https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/index.html#//apple_ref/occ/instm/UIViewController/willAnimateRotationToInterfaceOrientation:duration