2

デリゲートとして別のUITableViewControllerを使用して検索結果を表示するUISearchDisplayControllerを作成しました。UISearchDisplayControllerデリゲートからビューコントローラをプッシュできません

[[self navigationController] pushViewController: detailViewController animated: YES]; 

をスタックにプッシュする:このビューコントローラでは、IはdetailViewControllerを割り当て、初期化「didSelectRowAtIndexPath」メソッドは、次に使用有します。ただし、この行は機能しません。セルをタップすると何も起こりません。 'didSelectRowAtIndexPath'が呼び出されていますが、 'pushViewController'メソッド呼び出しが機能していません。私はもう私のnavigationControllerの文脈ではありませんか?この問題を解決するにはどうすればよいですか?

ご協力いただければ幸いです。

+0

にpushViewcontrollerのデリゲートを呼び出します。コードにブレークポイントを作り、それが本当にゼロかどうかを確認してください。それがnilならば、どのView Controllerが実際にNavigation Controllerの中にあるのかを見つけて、それを呼び出す必要があります。 – vakio

+0

私は新しいUISearchControllerでこの問題を抱えていました。これが私の解決に役立ちました:https://twitter.com/marcoarment/status/506609645335904257、メインビューコントローラでself.definesPresentationContext = trueを持たなければなりませんでした。 –

答えて

3

テーブルのnavigationControllerが間違っている可能性があります.UISearchDisplayControllerのnavigationControllerにプッシュしたいと思うかもしれません。 これを行うには、たとえば、メソッド "pushViewController"を使用してtableviewcontroller内にプロトコルを作成し、UISearchDisplayControllerにそのメソッドを実装させることができます。

その後、あなたの登録あなたのテーブルビューで、このデリゲートと、あなたはあなたの「didSelectRowAtIndexPath」[自己navigationController]がnilであるようですね

関連する問題