I have this app which uses 2 UISplitViewControllers on 1 screen (landscape mode). All is working fine on iOS 12, but on iOS 13 the screen is wrong on 9,7 iPads, perfect on the bigger iPads.
I have made some sample code to explain. All code, no storyboard stuff. All in AppDelegate.m :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIViewController *right = [[UIViewController alloc] init];
right.view.backgroundColor = [UIColor blueColor];
UIViewController *middle = [[UIViewController alloc] init];
middle.view.backgroundColor = [UIColor greenColor];
UIViewController *left = [[UIViewController alloc] init];
left.view.backgroundColor = [UIColor yellowColor];
UISplitViewController* rightSplitViewController = [[UISplitViewController alloc] init];
rightSplitViewController.viewControllers = [NSArray arrayWithObjects:middle, right, nil];
UISplitViewController* splitViewController = [[UISplitViewController alloc] init];
splitViewController.viewControllers = [NSArray arrayWithObjects:left, rightSplitViewController, nil];
self.window.rootViewController = splitViewController;
return YES;
}
I create 3 UIViewControllers, give them a different background color. I create 2 UISplitControllers and fill it with the UIViewControllers. Normally you should have your screen with 3 columns, in 3 colors, but on the 9,7 inch iPads you only get 2 columns.
This is how it looks on the iPad Pro 11 inch and 12,9 inch : http://www.waiterone.net/11-inch.png
This is how it looks on the iPad Pro 9,7 inch and the iPad Air : http://www.waiterone.net/9.7-inch.png
What is going on? Bug in iOS 13? How can I solve this?