0
votes

I've got an iPad application that runs in both landscape left/right using MMDrawerController with a UISplitViewController as it's center view controller. The left view controller is a UIViewController with a UITableView to navigate between different sections of the app. Without rotating the device everything works fine and there are no issues, although when I rotate the device and try to open the left drawer and select a new view to push I receive the "Unbalanced calls to begin/end appearance transitions for .." error. Due to this none of the viewWillAppear/viewDidAppear methods run causing issues.

Here's how I'm changing the left pane of the split view controller in the left drawer 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];

I'm at a loss for what could be causing this, the only action that happens on rotate is calling a layoutView method but this occurs even if I comment out the line that calls it.

1

1 Answers

0
votes

After a day of debugging this same problem, I found that it's due to the MMDrawerController manually passing on the rotation, which is unnecessary (and wrong) in iOS8. See this pull request for how to patch MMDrawer:

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