在iOS8上没有调用willRotateToInterfaceOrientation

Dav*_*e W 9 ipad uiinterfaceorientation vfr-reader ios8

我正在我的应用程序中使用VFR PDF查看器库,我在其中呈现它:

ReaderDocument *document = [ReaderDocument withDocumentFilePath:pdfFile password:nil];
ReaderViewController *vc = [[ReaderViewController alloc] initWithReaderDocument:document];
[self.navigationController pushViewController:vc animated:YES];
Run Code Online (Sandbox Code Playgroud)

如果我在iOS7上运行,一切正常.

如果我跑我的iOS8上的应用程序,在ReaderViewController的willRotateToInterfaceOrientation方法不会被调用,所以当设备旋转文档不能正确格式化.

但是,如果我运行自带的iOS8上的库中的演示应用程序,在ReaderViewController的willRotateToInterfaceOrientation不会被调用,这使我相信图书馆是确定的,我做错了什么(或者忽略做某事)在我应用程序.

我对这种行为感到很困惑.为什么不在我的iOS8应用程序中调用rpmRotateToInterfaceOrientation,但它在其他变体下呢?我怎样才能尝试追踪这个?

Dav*_*e W 12

我终于设法解决了我的问题; 这是问题,以防其他人有同样的问题.

ReaderViewController是从已经实现的类中呈现的viewWillTransitionToSize:withTransitionCoordinator:,因此未调用子视图控制器上已弃用的方法.

同样在那个实现中它没有调用

[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]
Run Code Online (Sandbox Code Playgroud)

所以viewWillTransitionToSize:withTransitionCoordinator:没有调用所有子视图控制器的方法.

修复是添加一个调用

[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]
Run Code Online (Sandbox Code Playgroud)

进入父VC的viewWillTransitionToSize:withTransitionCoordinator:方法,子类ReaderViewController,然后添加一个viewWillTransitionToSize:withTransitionCoordinator:到我的子类来调用相应的方法ReaderViewController.