2017-10-05 6 views
-1

したがって、私はmapViewの上に検索バーを実装しています。だから私のクラスisnt UITableViewController。以前はsearchDisplayControllerを使用していましたが、それは減価償却されているので、私はそれを使用しないでください。検索ディスプレイコントローラはUITableViewDataSourceを使用してテーブルの行などを操作していました。UISearchDisplayControllerのようなUITableViewControllerを使用しないでUISearchControllerを使用する必要があります

検索中に行を上に表示させることはできますか? UISearchControllerのチュートリアルはUITableViewを使用しています。私はテーブルの行だけ私の検索結果を表示し、私は行を選択し、検索バーも辞任する必要があります消えたい。

誰も私を正しい方向に導くことができますか?

編集:私は現在、あなたがリストのようなデザインが必要な場合はストーリーボード

答えて

0

から作られた検索バーを使用しています、最良のオプションは、テーブルビューです。検索バーの下にテーブルビューを追加し、最初に非表示にしてから、ユーザーが検索のためにsearchBarを選択した後に表示することができます。 私は絵コンテのためのスクリーンショットを添付し、ここではテーブルビューの非表示と非表示解除ここenter image description here

を処理するコードでいるコードは次のとおりです。これらは、検索バーの代理人である

func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) { 
    tableViewForSearch.isHidden = false 

} 
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) { 
    tableViewForSearch.isHidden = true 
} 

、彼らは非常に記述されています。 searchBarデリゲートをselfに設定することを忘れないでください。 これが役に立ちますようにお願いします。

+0

おかげで最初の応答者にならないためにNOを返します。私はこれも正しい方向であることに同意しますが、私はまだビュー(マップビューを保持)の上に手動でテーブルビューを管理する方法に苦労しています。検索バーが最初のレスポンダーになり、見つからないときに消えてしまいます。 –

+0

OK、ストーリーボードイメージとそれに対応するコードを添付すると、searchBarがアクティブになったときにテーブルビューを非表示にすることができますか?いくつかの時間に答えを更新します –

+0

確かに、大いに感謝! –

0

あなたはあなたの仕事を達成することができます。

ステップ1:show object libraryからビューにUISearchBarを追加します。

AM.png

11.17.14で2017年10月5日ショット

/ユーザ/ラジェッシュ/デスクトップ/画面ステップ2:あなたのViewControllerクラスにUISearchBarアウトレットを追加します。

@IBOutlet weak var searchbar: UISearchBar!

ステップ3:あなたのViewControllerクラスにUISearchBarデリゲートに準拠しています。

`searchbar.delegate = self` 

ステップ4シナリオを完了するには、すべてのUISearchbarデリゲートメソッドを使用します。

@available(iOS 2.0, *) optional public func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool //は、返信用

@available(iOS 2.0, *) 
optional public func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) // called when text starts editing 

@available(iOS 2.0, *) 
optional public func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool // return NO to not resign first responder 

@available(iOS 2.0, *) 
optional public func searchBarTextDidEndEditing(_ searchBar: UISearchBar) // called when text ends editing 

@available(iOS 2.0, *) 
optional public func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) // called when text changes (including clear) 

@available(iOS 3.0, *) 
optional public func searchBar(_ searchBar: UISearchBar, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool // called before text changes 


@available(iOS 2.0, *) 
optional public func searchBarSearchButtonClicked(_ searchBar: UISearchBar) // called when keyboard search button pressed 

@available(iOS 2.0, *) 
optional public func searchBarBookmarkButtonClicked(_ searchBar: UISearchBar) // called when bookmark button pressed 

@available(iOS 2.0, *) 
optional public func searchBarCancelButtonClicked(_ searchBar: UISearchBar) // called when cancel button pressed 

@available(iOS 3.2, *) 
optional public func searchBarResultsListButtonClicked(_ searchBar: UISearchBar) // called when search results button pressed 


@available(iOS 3.0, *) 
optional public func searchBar(_ searchBar: UISearchBar, selectedScopeButtonIndexDidChange selectedScope: Int) 
+0

返信いただきありがとうございます。私はすでにUISearchBarデリゲートメソッドを使用できます。私が直面している問題は、UISearchControllerにはUISearchDisplayControllerのような検索表示がありません。だから私はテーブルとそれを接続できるようにする必要があります。したがって、私が考えることのできるソリューションの方向性は、検索バーが最初の応答になるときに何らかの形でテーブルビューを表示することです。私はそれに助けが必要です –

関連する問題