title: willTransitionToTraitCollection not called on first change when UISplitViewController preferredDisplayMode is Overlay
body: <p>I'm using a UISplitViewController and in my detail view, I am trying to use <code>willTransitionToTraitCollection:withTransitionCoordinator:</code> to change the visibility of a couple views when the vertical size class changes to Compact.</p>
  
  <p>On only the iPhone (not iPhone Plus or iPad) If I change the <code>preferredDisplayMode</code> to <code>UISplitViewControllerDisplayModePrimaryOverlay</code>, <code>willTransitionToTraitCollection:withTransitionCoordinator:</code> is not called the first time the device is rotated, but <code>willTransitionToSize:withTransitionCoordinator:</code> is. If I set <code>preferredDisplayMode</code> to anything else it works just fine. If you rotate the device prior to selecting an item in the Master list, it works just fine. It is ONLY on the first rotation from portrait to landscape.</p>
  
  <p>This is easily reproduced using the Master-Detail template:</p>
  
  <p>AppDelegate:</p>
  
  <pre><code>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      // Override point for customization after application launch.
      UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
  
      // ******** Add this ********
      [splitViewController setPreferredDisplayMode:UISplitViewControllerDisplayModePrimaryOverlay];
  
      UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
      navigationController.topViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem;
      splitViewController.delegate = self;
      return YES;
  }
  </code></pre>
  
  <p>In <code>DetailViewController</code>, add the <code>viewWillTransitionToTraitCollection</code> and <code>viewWillTransitionToSize</code> implementations and set breakpoints:</p>
  
  <pre><code>- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id&lt;UIViewControllerTransitionCoordinator&gt;)coordinator
  {
      [super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator];
  }
  
  - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id&lt;UIViewControllerTransitionCoordinator&gt;)coordinator
  {
      [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
  }
  </code></pre>
  
  <p>You will see that <code>willTransitionToSize:</code> is always called, but <code>willTransitionToTraitCollection:</code> is not called for the first transition.</p>
  
  <p>Does anyone know why this is? I feel like this is a bug, but I wanted to see if anyone has an explanation before I send a bug report into Apple's bug reporter black hole.</p>