アダプティブ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 は正しく適応しますが、検索結果コントローラーはまだ正しく見えません。)
UISearchController
UI がサイズ クラスの変更に適応するため、プレゼンテーションを適切にアニメーション化するには何が欠けていますか?
アップデート:
追加するself.definesPresentationContext = YES;
と、検索バー/結果がプライマリ ビュー内に表示されますが、検索バーはそのナビゲーション バーの下でアニメーション化されており、表示されません。もう 1 つの問題は、縦向き (ステータス バーがある) から横向きに戻るときに、検索バーの高さが縮小しないことです。