2017-08-13 60 views
0

我有一個tableview顯示一些數據,我過濾顯示的數據uisng UISearchbar。每個數據結構由不同的價值觀和UISearchbar在swift中搜索所有字段3

struct Cake { 
    var name = String() 
    var size = String() 
    var filling = String() 
} 

當用戶開始輸入我不知道他是否被過濾的名稱,大小或填充。我不想使用範圍欄。有沒有辦法在swift 3中同時過濾各個領域?

這是我使用的過濾器的代碼:

func updateSearchResults(for searchController: UISearchController) { 

    if searchController.searchBar.text! == "" { 
     filteredCakes = cakes 
    } else { 
    // Filter the results 
     filteredCakes = cakes.filter { $0.name.lowercased().contains(searchController.searchBar.text!.lowercased()) } 
    } 

    self.tableView.reloadData() 
} 

感謝您的幫助!

回答

1
func updateSearchResults(for searchController: UISearchController) 
{ 
    guard let searchedText = searchController.searchBar.text?.lowercased() else {return} 

    filteredCakes = cakes.filter 
    { 
     $0.name.lowercased().contains(searchedText) || 
     $0.size.lowercased().contains(searchedText) || 
     $0.filling.lowercased().contains(searchedText) 
    } 

    self.tableView.reloadData() 
} 
+0

這就像魅力!非常感謝! – MotoxX