2

ナビゲーション コントローラーをオーバーレイする (つまり、ナビゲーション スタックにプッシュされない)基本的な検索ビューを読み込もうとしています。これを達成するために、私は を使用して[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];
}

問題は、検索ビューがレンダリングされるときに、透明な黒いビューでテーブル ビューを黒く塗りつぶすという通常の動作を行いますが、次のように、テーブル ビューのセパレーターを覆っているようには見えないことです。

テーブルビューの不具合

私は本当にそれを修正する方法がわかりません。私の最善の推測は、私が正しく理解していないビューをロードするモーダルコントローラーのプロセスと関係があるということです。メソッドに移動してみましbecomeFirstResponderviewDidLoad。また、メソッドをおよびに変更しながら、setActiveメソッド および メソッドの順序を変更しようとしました。becomeFirstRespondersetActiveanimated:NOYES

ここで何かを理解していないことは明らかであり、意図しない方法で何かを使用していると推測しています。助けてください、ありがとう:)

edit :興味深いことに、ブラックアウトされたテーブルビューをresignFirstResponderクリックして検索バーに移動し、検索バー内をもう一度クリックしてアクティブbecomeFirstResponderにすると、グリッチなしで正常に読み込まれます。

4

2 に答える 2

1

self.searchDisplayController.searchResultsTableView.separatorStyle=UITableViewCellSeparatorStyleNone; を試しましたか? ??

于 2012-12-04T06:24:20.690 に答える
0

さて、何時間もコードをいじり、何が間違っていたのかを理解しようとした後、ついに答え、または少なくとも修正を見つけました。(実際に何がうまくいかなかったのか、私はまだ当惑しています)

ストーリーボードのインターフェイス ビルダーから検索バーを単純に削除しました。そして、それを別のものに置き換えましたsearchDisplayController。もちろん、検索バーを の検索バー プロパティに再接続する必要がありました。

私の最善の推測は、何らかの理由で、UI 要素をインターフェイス ビルダー/ストーリーボードにドラッグして接続する順序が Xcode に気に入らなかったということです。

これが誰かに役立つことを願っています。

于 2012-12-04T03:48:59.920 に答える