2017-09-29 7 views
0

複数のデータが来る(名前、連絡先、メール、ステータスなど)UITableViewで検索する必要があります。ユーザーは名前または電話番号で検索してレコードを検索できます。データはモデルを使って処理されます。つまり、配列にオブジェクトが含まれていることを意味します。だから、このように検索する方法は分かりません。私はあなたのnamePlainmobilePlainが文字列であると仮定しUItableViewからの複数のパラメータに基づいて検索

let dss:VisitorsDs = VisitorsArray as! VisitorsDs 

    let filteredArray = self.VisitorsArray.filter(using: {($0.dss.namePlain.contains(txtSearch.text)) || ($0.dss.mobilePlain.contains(txtSearch.text))}) 
+0

使用 'フィルタ()'や 'NSPredicate'ユーザーが検索できる性質のそれぞれに'VisitorsDs'。 – Larme

答えて

0

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell: VisitorsCell = tableView.dequeueReusableCell(withIdentifier: "VisitorsCell", for: indexPath) as! VisitorsCell 

    let dss:VisitorsDs = VisitorsArray[indexPath.row] as! VisitorsDs 

    dss.ageFromDate = ds.age 
    cell.lblAge.text = dss.ageFromDate 
    cell.lblName.text = dss.namePlain 
    cell.lblMobile.text = dss.mobilePlain 
    cell.lblPurpose.text = dss.purpose 
    cell.lblParentsName.text = dss.parentsName 
    cell.lblTime.text = dss.time 
    cell.lblDate.text = dss.date 
    cell.lblClinic.text = dss.clinic 

    return cell 

} 

更新:UITableViewCellの中のデータをこのように表示

。これを試してみてください -

let filteredArray = self.VisitorsArray.filter({($0.namePlain.contains(yourSearchTextField.text)) || ($0.mobilePlain.contains(yourSearchTextField.text))}) 
+0

実際には文字列ですが、直接アクセスすることはできません。私はクラスのインスタンスを使用してアクセスしています。 –

+0

@ iPhone6答えに上記のコードを使用してください。そして、 'filteredArray'をデータソースとして使用してください。 –

+0

更新された質問を確認してください。 –

0

あなたのフィルタリングは、あなたの配列内のオブジェクト上で実行する必要があり、あなたがtableview.reloadDataを呼び出す前に()

あなたはテーブルビューを楽しみにした後、それ以上レコードをフィルターすることはできません表示される行の数。

0

この目的のために設計されたUISearchControllerの使用を検討してください。 This tutorialは、あなたが探しているのとまったく同じように見えます。つまり、検索をテーブルビューに統合する方法です。

0

最終的には自分を得ましたが、@Aditya Srivastavaと@Larmeのおかげで正しいトラックに乗ることができました。

arrSearchResults = recentVisitorsArray.filter{ ($0.namePlain.contains(txtSearch.text!)) || ($0.mobilePlain.contains(txtSearch.text!)) } 

私がやっていた間違いだった:

//var recentVisitorsArray:NSMutableArray = NSMutableArray() 

正しい方法は次のとおりです。

var recentVisitorsArray = [RecentVisitorsDs]() 
var arrSearchResults = [RecentVisitorsDs]() 
関連する問題