我应该如何使用 UISplitView 自适应用户界面呈现 UISearchController?

How should I present a UISearchController using a UISplitView adaptive user interface?

使用具有自适应 UISplitViewController 用户界面的通用故事板。

我想在主(主)端呈现一个搜索控制器,使用以下代码(来自主视图控制器):

static NSString * const kCGISearchViewControllerID = @"SearchViewControllerID";

- (IBAction)searchButtonClicked:(UIBarButtonItem *)__unused sender {
    SearchViewController *searchResultsController = [self.storyboard instantiateViewControllerWithIdentifier:kCGISearchViewControllerID];
    self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController];
    self.searchController.searchResultsUpdater = searchResultsController;
    self.searchController.hidesNavigationBarDuringPresentation = NO;
    [self presentViewController:self.searchController animated:YES completion:nil];
}

它最初似乎工作正常(无论起始方向如何):

自动旋转后出现问题(键盘仍然可见,底层内容仍然变暗,但搜索栏已消失):

旋转回横向后,搜索栏重新出现,但现在宽度不对:

(我也试过将搜索控制器的 searchBar 放在 titleView 中。虽然 searchBar 正确适应,但搜索结果控制器看起来仍然不正确。)

当 UI 适应不断变化的大小 类 时,我缺少什么才能让呈现的 UISearchController 正确地动画化?

更新:

添加 self.definesPresentationContext = YES; 使搜索 bar/results 出现在主视图中,但搜索栏在该导航栏下方 下显示动画,并且不是'不可见。另一个问题是,当搜索栏从纵向(有状态栏)旋转回横向时,高度不会缩小。

您使用的 Xcode 版本是什么?模拟器上的 iOS 版本是什么?
尝试使用 Xcode 6,iOS 8.4 - 这就是我在 MasterVC 中使用的所有代码:

class MasterViewController: UITableViewController {

    @IBAction func search(sender: UIBarButtonItem) {
        let searchController = UISearchController(searchResultsController: nil)
        searchController.hidesNavigationBarDuringPresentation = false
        presentViewController(searchController, animated: true, completion: nil)
    }
...
}

呈现在Master里面,锁定屏幕方向!自您发布答案后,行为可能发生了变化。