2017-05-26 6 views
1

配列と1つのテキストフィールドを使用してtableviewを作成しました。 テキストフィールドの編集では、テーブルビューのデータはテキストフィールドの入力に従ってソートされ、フィルタリングされます。テーブルビューに状態に関するデータがある場合、テキストフィールドに 'A'を入力すると、すべてのテーブルビューデータがソートされ、アルファベット「A」で始まるすべての状態名が表示されます。論理を教えてください。テキストフィールド編集でテーブルビューデータをフィルタリングする方法 - IOS

+0

。 NB:2つの配列にすべてのデータが格納され、その他の配列には最初の配列のフィルタリングされたデータが格納されます。それが役に立てば幸い – Janmenjaya

答えて

0

私の提案は、多くの機能を備えたUISearchController UISearchControllerを使用することです。これを使用すると、あなたが今質問していることはとても簡単です。 UISearchControllerに行ってください。

UISearchController tutorialが役に立ちます。

0

このYouTubeのビデオ:https://www.youtube.com/watch?v=MgNRMcCWJhU&list=PLt2cCXacqzgfUAjHYnZ9rrPkih4NzAV4E&index=25

とサイトのリンクはあなたの問題を解決することがあります。
http://www.appcoda.com/custom-search-bar-tutorial/

テーブルをリロードして編集中にコードを入力するだけで済みます。例えば

:あなたは結果をフィルタリングするために述語の助けを取ると、あなたのテーブルをリロードすることができます

func searchBarTextDidBeginEditing(searchBar: UISearchBar) { 
    shouldShowSearchResults = true 
    tblSearchResults.reloadData() 
} 



func updateSearchResultsForSearchController(searchController: UISearchController) { 
    let searchString = searchController.searchBar.text 

    // Filter the data array and get only those countries that match the search text. 
    filteredArray = dataArray.filter({ (country) -> Bool in 
     let countryText: NSString = country 

     return (countryText.rangeOfString(searchString, options: NSStringCompareOptions.CaseInsensitiveSearch).location) != NSNotFound 
    }) 

    // Reload the tableview. 
    tblSearchResults.reloadData() 
} 
関連する問題