ナビゲーション コントローラーをオーバーレイする (つまり、ナビゲーション スタックにプッシュされない)基本的な検索ビューを読み込もうとしています。これを達成するために、私は を使用して[self presentModalViewController:vc animated:NO]
います。
フル モーダル ビュー プレゼンテーション コード:
- (void)searchButtonPressed
{
TMSearchViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"Search"];
[self presentModalViewController:vc animated:NO];
vc.searchDisplayController.searchBar.delegate = self;
}
モーダル ビューが画面に表示された後、検索ビューのコントローラー内で次のコードが実行されます。
- (void)viewDidAppear:(BOOL)animated
{
[self.searchDisplayController.searchBar becomeFirstResponder];
[self.searchDisplayController setActive:YES animated:NO];
}
問題は、検索ビューがレンダリングされるときに、透明な黒いビューでテーブル ビューを黒く塗りつぶすという通常の動作を行いますが、次のように、テーブル ビューのセパレーターを覆っているようには見えないことです。
私は本当にそれを修正する方法がわかりません。私の最善の推測は、私が正しく理解していないビューをロードするモーダルコントローラーのプロセスと関係があるということです。メソッドに移動してみましbecomeFirstResponder
たviewDidLoad
。また、メソッドをおよびに変更しながら、setActive
メソッド および メソッドの順序を変更しようとしました。becomeFirstResponder
setActive
animated:NO
YES
ここで何かを理解していないことは明らかであり、意図しない方法で何かを使用していると推測しています。助けてください、ありがとう:)
edit :興味深いことに、ブラックアウトされたテーブルビューをresignFirstResponder
クリックして検索バーに移動し、検索バー内をもう一度クリックしてアクティブbecomeFirstResponder
にすると、グリッチなしで正常に読み込まれます。