9

アダプティブ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];
}

最初は正しく動作しているように見えます (開始方向に関係なく):

ランドスケープは、最初は問題ないように見えます

自動回転後に問題が発生します (キーボードは引き続き表示され、下にあるコンテンツは引き続き淡色表示されますが、検索バーは表示されなくなります):

ここに画像の説明を入力

回転して横向きに戻すと、検索バーが再び表示されますが、幅が間違っています。

ここに画像の説明を入力

(また、検索コントローラーを に配置しようとしましsearchBartitleView。searchBar は正しく適応しますが、検索結果コントローラーはまだ正しく見えません。)

UISearchControllerUI がサイズ クラスの変更に適応するため、プレゼンテーションを適切にアニメーション化するには何が欠けていますか?

アップデート:

追加するself.definesPresentationContext = YES;と、検索バー/結果がプライマリ ビュー内に表示されますが、検索バーはそのナビゲーション バーのでアニメーション化されており、表示されません。もう 1 つの問題は、縦向き (ステータス バーがある) から横向きに戻るときに、検索バーの高さが縮小しないことです。

4

1 に答える 1