title: UISearchBar AutoLayout Error On Presentation of searchResultsController
body: <p>I'm trying to get <code>UISearchBar</code> + <code>UISearchController</code> working in Obj-C, following along with Apple's example code <a href="https://developer.apple.com/library/ios/samplecode/TableSearch_UISearchController/Introduction/Intro.html" rel="noreferrer">here</a>. I don't want to set the search bar up in a table view header, as they do in the example, so I'm setting constraints to stick it to the top of the main view controller. This works fine for positioning, but when I tap the search bar and it tries to modally present the results table view controller (<code>searchResultsTVC</code>), it throws an error on the constraints:</p>
  
  <pre><code>2015-02-01 00:36:47.539 Search-FeatureTest[15521:3760972] The view hierarchy is not prepared for the constraint: &lt;NSLayoutConstraint:0x7fc911c77f90 UISearchBar:0x7fc911c6b880.left == UIView:0x7fc911c69b70.left&gt;
  When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to be resolved before the view hierarchy is assembled. Break on -[UIView _viewHierarchyUnpreparedForConstraint:] to debug.
  2015-02-01 00:36:47.539 Search-FeatureTest[15521:3760972] *** Assertion failure in -[UIView _layoutEngine_didAddLayoutConstraint:roundingAdjustment:mutuallyExclusiveConstraints:], /SourceCache/UIKit_Sim/UIKit-3318.16.14/NSLayoutConstraint_UIKitAdditions.m:560
  2015-02-01 00:36:47.541 Search-FeatureTest[15521:3760972] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Impossible to set up layout with view hierarchy unprepared for constraint.'
  *** First throw call stack:
  (
      0   CoreFoundation                      0x00000001047aef35 __exceptionPreprocess + 165
      1   libobjc.A.dylib                     0x0000000104447bb7 objc_exception_throw + 45
      2   CoreFoundation                      0x00000001047aed9a +[NSException raise:format:arguments:] + 106
      3   Foundation                          0x00000001040645df -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 195
      4   UIKit                               0x0000000105215cf2 __120-[UIView(UIConstraintBasedLayout) _layoutEngine_didAddLayoutConstraint:roundingAdjustment:mutuallyExclusiveConstraints:]_block_invoke_2 + 177
      5   UIKit                               0x0000000105215be7 -[UIView(UIConstraintBasedLayout) _layoutEngine_didAddLayoutConstraint:roundingAdjustment:mutuallyExclusiveConstraints:] + 377
      6   UIKit                               0x0000000105215ea4 -[UIView(UIConstraintBasedLayout) _tryToAddConstraintWithoutUpdatingConstraintsArray:roundingAdjustment:mutuallyExclusiveConstraints:] + 30
      7   UIKit                               0x0000000105215fcc -[UIView(UIConstraintBasedLayout) _tryToAddConstraint:roundingAdjustment:mutuallyExclusiveConstraints:] + 243
      8   UIKit                               0x000000010521630b __50-[UIView(UIConstraintBasedLayout) addConstraints:]_block_invoke + 188
      9   Foundation                          0x0000000103fedd6e -[NSISEngine withBehaviors:performModifications:] + 155
      10  UIKit                               0x0000000105216240 -[UIView(UIConstraintBasedLayout) addConstraints:] + 263
      11  UIKit                               0x000000010520f112 -[_UISearchPresentationController presentationTransitionWillBegin] + 759
      12  UIKit                               0x0000000104ca00a7 __71-[UIPresentationController _initViewHierarchyForPresentationSuperview:]_block_invoke + 1398
      13  UIKit                               0x0000000104c9eb50 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 175
      14  UIKit                               0x0000000104bbe331 _applyBlockToCFArrayCopiedToStack + 314
      15  UIKit                               0x0000000104bbe1ab _afterCACommitHandler + 516
      16  CoreFoundation                      0x00000001046e3dc7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
      17  CoreFoundation                      0x00000001046e3d20 __CFRunLoopDoObservers + 368
      18  CoreFoundation                      0x00000001046d9b53 __CFRunLoopRun + 1123
      19  CoreFoundation                      0x00000001046d9486 CFRunLoopRunSpecific + 470
      20  GraphicsServices                    0x0000000107d7d9f0 GSEventRunModal + 161
      21  UIKit                               0x0000000104b9b420 UIApplicationMain + 1282
      22  Search-FeatureTest                  0x0000000103f19043 main + 115
      23  libdyld.dylib                       0x0000000106d3e145 start + 1
   )
  libc++abi.dylib: terminating with uncaught exception of type NSException
  </code></pre>
  
  <p>Here is the code where I initialize the search controller and the search bar's constraints:</p>
  
  <pre><code>- (void)viewDidLoad {
      [super viewDidLoad];
  
      self.searchResultsTVC = [[SearchResultsTVC alloc]init];
      self.allObjects = [NSMutableArray arrayWithArray:@[@"A", @"AA", @"ABBA", @"B", @"BOB", @"C", @"D", @"E", @"F", @"G", @"H"]];
  
      self.searchController = [[UISearchController alloc]initWithSearchResultsController:self.searchResultsTVC];
      [self.searchController setSearchResultsUpdater:self];
      [self.searchController setDelegate:self];
  
      [self.searchController.searchBar setDelegate:self];
      [self.view addSubview:self.searchController.searchBar];
  
      //constraints for searchBar
      [self.searchController.searchBar setTranslatesAutoresizingMaskIntoConstraints:NO];
      UISearchBar *searchBar = self.searchController.searchBar;
      id topLayoutGuide = self.topLayoutGuide;
  
      [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[searchBar]|" options:NSLayoutFormatDirectionLeftToRight metrics:nil views:NSDictionaryOfVariableBindings(searchBar)]];
      [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[topLayoutGuide][searchBar]" options:NSLayoutFormatDirectionLeftToRight metrics:nil views:NSDictionaryOfVariableBindings(topLayoutGuide, searchBar)]];
  
  }
  </code></pre>