设备旋转后对 UISplitViewController 和 MMDrawerController 的 begin/end 外观转换的调用不平衡?

Unbalanced calls to begin/end appearance transition for UISplitViewController and MMDrawerController after device rotation?

我有一个 iPad 应用程序,它 运行 在两个景观 left/right 中使用 MMDrawerController 和 UISplitViewController 作为它的中心视图控制器。左侧的视图控制器是一个 UIViewController 和一个 UITableView ,用于在应用程序的不同部分之间导航。在不旋转设备的情况下,一切正常,没有任何问题,尽管当我旋转设备并尝试打开左侧抽屉并 select 推送一个新视图时,我收到 "Unbalanced calls to begin/end appearance transitions for .." 错误。由于 viewWillAppear/viewDidAppear 方法中的 none 运行 导致问题。

以下是我如何更改左侧抽屉 UITableView 中拆分视图控制器的左侧窗格:

NewsLVC *newsLVC = [[NewsLVC alloc] init];

[[[AppController sharedAppController].splitController.viewControllers objectAtIndex:0] setViewControllers:@[newsLVC] animated:NO];

[self.mm_drawerController setCenterViewController:[AppController sharedAppController].splitController withCloseAnimation:YES completion:nil];

我不知道是什么原因导致的,旋转时发生的唯一操作是调用 layoutView 方法,但即使我注释掉调用它的行也会发生这种情况。

经过一天调试同样的问题,我发现这是由于 MMDrawerController 手动传递旋转,这在 iOS8 中是不必要的(也是错误的)。请参阅此拉取请求以了解如何修补 MMDrawer:

https://github.com/mutualmobile/MMDrawerController/pull/288