title: UIViewControllerHierarchyInconsistency crashes app only in iOS 8 and Xcode 6
body: <p>i have an app which work fine in iOS 7 and Xcode 5. As soon as I updated it to iOS 8 and Xcode 6 it crashes when app try to slide up UIDatePicker in the view when a textField is tapped. 
  I am using storyboard.
  Anybody has idea why?</p>
  
  <p>i have read upon this but its for Xib.</p>
  
  <p><a href="https://stackoverflow.com/questions/12641833/app-crashes-on-ios-6-uiviewcontrollerhierarchyinconsistency">App crashes on IOS 6 - UIViewControllerHierarchyInconsistency</a></p>
  
  <p>please help 
  thanks</p>
  
  <p>my code:</p>
  
  <pre><code>- (void)textFieldDidBeginEditing:(UITextField *)textField
  {
  
      //set picker color start
      [self.myDatePicker setBackgroundColor:[UIColor greenColor]];
  
  
      //set picker color finish
      //calculate bounds start
      CGRect textFieldRect = [self.view.window convertRect:textField.bounds fromView:textField];
      CGRect viewRect = [self.view.window convertRect:self.view.bounds fromView:self.view];
      //calculate bounds finish
      //calculate the fraction between the top and bottom of the middle section for the text field's midline start
      CGFloat midline = textFieldRect.origin.y + 0.5 * textFieldRect.size.height;
      CGFloat numerator = midline - viewRect.origin.y
      - MINIMUM_SCROLL_FRACTION * viewRect.size.height;
      CGFloat denominator = (MAXIMUM_SCROLL_FRACTION - MINIMUM_SCROLL_FRACTION)
      * viewRect.size.height;
      CGFloat heightFraction = numerator / denominator;
      //calculate the fraction between the top and bottom of the middle section for the text field's midline finish
      //Clamp this fraction so that the top section is all "0.0" and the bottom section is all "1.0 start
      if (heightFraction &lt; 0.0)
      {
          heightFraction = 0.0;
      }
      else if (heightFraction &gt; 1.0)
      {
          heightFraction = 1.0;
      }
      //Clamp this fraction so that the top section is all "0.0" and the bottom section is all "1.0 finish
      /*start
       Now take this fraction and convert it into an amount to scroll by multiplying by the keyboard height for the current screen orientation. Notice the calls to floor so that we only scroll by whole pixel amounts */
       UIInterfaceOrientation orientation =
       [[UIApplication sharedApplication] statusBarOrientation];
       if (orientation == UIInterfaceOrientationPortrait ||
       orientation == UIInterfaceOrientationPortraitUpsideDown)
       {
       animatedDistance = floor(PORTRAIT_KEYBOARD_HEIGHT * heightFraction);
       }
       else
       {
       animatedDistance = floor(LANDSCAPE_KEYBOARD_HEIGHT * heightFraction);
       }
       //finish
      //Finally, apply the animation start
      CGRect viewFrame = self.view.frame;
      viewFrame.origin.y -= animatedDistance;
  
      [UIView beginAnimations:nil context:NULL];
      [UIView setAnimationBeginsFromCurrentState:YES];
      [UIView setAnimationDuration:KEYBOARD_ANIMATION_DURATION];
      [self.view addSubview:self.myDatePicker];
      [self.view setFrame:viewFrame];
  
      [UIView commitAnimations];
  
  
  }
      //Finally, apply the animation finish
      //Animate back again start
  </code></pre>
  
  <p>my crash log</p>
  
  <pre><code>2014-09-14 13:12:52.930 Pay 2014-15 free[2191:83060]
   *** Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', 
  reason: 'child view controller:&lt;UICompatibilityInputViewController: 0x7be0a570&gt; should have parent view controller:&lt;AddHoursViewController: 0x7c38e800&gt; but requested parent is:&lt;UIInputWindowController: 0x7c238a00&gt;'
  *** First throw call stack:
  (
      0   CoreFoundation                      0x02101df6 __exceptionPreprocess + 182
      1   libobjc.A.dylib                     0x01d8ba97 objc_exception_throw + 44
      2   CoreFoundation                      0x02101d1d +[NSException raise:format:] + 141
      3   UIKit                               0x008cff9c -[UIViewController _addChildViewController:performHierarchyCheck:notifyWillMove:] + 210
      4   UIKit                               0x00f4b44d -[UIInputWindowController changeToInputViewSet:] + 576
      5   UIKit                               0x00f4c1be __43-[UIInputWindowController setInputViewSet:]_block_invoke + 103
      6   UIKit                               0x007f73bf +[UIView(Animation) performWithoutAnimation:] + 82
      7   UIKit                               0x00f4bf9c -[UIInputWindowController setInputViewSet:] + 374
      8   UIKit                               0x00ce9101 __64-[UIPeripheralHost(UIKitInternal) setInputViews:animationStyle:]_block_invoke1459 + 43
      9   UIKit                               0x00f473af -[UIInputWindowController performOperations:withAnimationStyle:] + 56
      10  UIKit                               0x00ce9006 -[UIPeripheralHost(UIKitInternal) setInputViews:animationStyle:] + 1242
      11  UIKit                               0x00ce91df -[UIPeripheralHost(UIKitInternal) setInputViews:animated:] + 73
      12  UIKit                               0x00ce922b -[UIPeripheralHost(UIKitInternal) setInputViews:] + 68
      13  UIKit                               0x00ce1478 -[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:] + 1803
      14  UIKit                               0x0092be95 -[UIResponder(UIResponderInputViewAdditions) reloadInputViews] + 316
      15  UIKit                               0x0092b1dc -[UIResponder becomeFirstResponder] + 562
      16  UIKit                               0x007f1de0 -[UIView(Hierarchy) becomeFirstResponder] + 114
      17  UIKit                               0x00fb7ffb -[UITextField becomeFirstResponder] + 51
      18  UIKit                               0x00bbde8f -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) setFirstResponderIfNecessary] + 200
      19  UIKit                               0x00bc04b6 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) oneFingerTap:] + 2762
      20  UIKit                               0x00bb3d27 _UIGestureRecognizerSendActions + 327
      21  UIKit                               0x00bb25a4 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 561
      22  UIKit                               0x00bb45ed -[UIGestureRecognizer _delayedUpdateGesture] + 60
      23  UIKit                               0x00bb7f6a ___UIGestureRecognizerUpdate_block_invoke661 + 57
      24  UIKit                               0x00bb7e2d _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 317
      25  UIKit                               0x00babd36 _UIGestureRecognizerUpdate + 3720
      26  UIKit                               0x007c771b -[UIWindow _sendGesturesForEvent:] + 1356
      27  UIKit                               0x007c857f -[UIWindow sendEvent:] + 769
      28  UIKit                               0x0078daa9 -[UIApplication sendEvent:] + 242
      29  UIKit                               0x0079d8de _UIApplicationHandleEventFromQueueEvent + 20690
      30  UIKit                               0x00772079 _UIApplicationHandleEventQueue + 2206
      31  CoreFoundation                      0x020257bf __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
      32  CoreFoundation                      0x0201b2cd __CFRunLoopDoSources0 + 253
      33  CoreFoundation                      0x0201a828 __CFRunLoopRun + 952
      34  CoreFoundation                      0x0201a1ab CFRunLoopRunSpecific + 443
      35  CoreFoundation                      0x02019fdb CFRunLoopRunInMode + 123
      36  GraphicsServices                    0x0394624f GSEventRunModal + 192
      37  GraphicsServices                    0x0394608c GSEventRun + 104
      38  UIKit                               0x00775e16 UIApplicationMain + 1526
      39  Pay 2014-15 free                    0x0014ed7d main + 141
      40  libdyld.dylib                       0x0736cac9 start + 1
  )
  libc++abi.dylib: terminating with uncaught exception of type NSException
  (lldb) `enter code here`
  </code></pre>