2016-05-24 6 views
0

私はsearchBarをtableViewのフィルタとして使用しています。私はSwift 2.xとiOS9でsearchBarをプログラムで終了する

self.definesPresentationContext = true 

を含むいくつかの記事で読んだ は、検索バーを閉じるが、それは私の場合ではありません。 私が達成したいのは、ユーザーがバーをタップすると、いくつかの条件が満たされない場合に閉じる検索を閉じることです。

また、私は結果なしで

searchController.active = falseを

を試してみました。誰でも助けることができますか?おかげ

+1

"私が達成したいのは、ユーザーがバーをタップするとすぐに検索が終了するということです。"いいえ、あなたがしたいことを理解していません。 「いくつかの条件が満たされない」場合は、検索バーが表示され、有効になっているのはなぜですか?これを処理する方法は、ユーザーが検索バーを最初から不適切にタップするのを防ぎ、何かを突然消してユーザーを驚かせることではありません。 – matt

+0

私がsearchBarを表示していない場合、ユーザーは彼がそれをアクティブ化できることをどのように知っていますか?私はタップの後にメッセージを表示することは良いアイデアだろうと思っていた。あなたはよりよい解決策を持っていますか? – Nicholas

+1

「あなたはもっと良い解決策を持っていますか?」私はあなたがより良い解決策を見つけたと思っています。ソフトウェア設計の基本的なルール:ユーザーを驚かせてはいけません、ユーザーを誤解しないで、ユーザーのばかを作らないでください。ユーザーが何もすることができない場合、そのことを行う手段を彼/彼女に与えないでください。逆に、「あなたはばかだ」という警告を出すだけの唯一のインターフェースをユーザーに与えないでください。 – matt

答えて

1

は、try:

[searchController.searchBar setHidden:YES]; 

あなたはおそらくもpresentingViewControllerを却下することをお勧めします。

マットが指摘しているように、これは奇妙なやり方ですが、条件が満たされず、searchBarを表示しない場合でも、alertViewを表示した方がよいでしょう。

+0

はSwift 2.xで実際にはsearchController.searchBar.enable = trueですが、空白が残っています。そうしないと、アルファチャンネル – Nicholas

関連する問題