0

我有一个 iPad 应用程序,它使用 MMDrawerController 和 UISplitViewController 作为它的中心视图控制器在左右横向运行。左视图控制器是一个带有 UITableView 的 UIViewController,用于在应用程序的不同部分之间导航。在不旋转设备的情况下,一切正常,没有问题,尽管当我旋转设备并尝试打开左侧抽屉并选择要推送的新视图时,我收到“开始/结束外观转换的不平衡调用..”错误. 因此,没有任何 viewWillAppear/viewDidAppear 方法运行会导致问题。

下面是我如何在左侧抽屉 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 方法,但即使我注释掉调用它的行也会发生这种情况。

4

1 回答 1

0

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

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

于 2015-03-04T07:05:57.187 回答