Gray bar caused by NavigationController at bottom of screen

Subclass UISplitViewController and add:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.extendedLayoutIncludesOpaqueBars = YES;
}

or

- (BOOL)extendedLayoutIncludesOpaqueBars
{
    return YES;
}

Set the extendedLayoutIncludesOpaqueBars property of the UISplitViewController to true. This can be done when you initialize the controller (most likely in AppDelegate). I didn't need to subclass UISplitViewController to get it to work. Tested with iOS 9.2 and 9.3.

let splitViewController = UISplitViewController()    
splitViewController.extendedLayoutIncludesOpaqueBars = true