テーブルビューの選択された行(.checkmark)値(文字列)はsqlite DBに保存され、tableviewは同じ値で再読み込みされ、 。 、のUITableView:コードは、テーブルビューをリロードでswift sqliteから選択した行(.checkmark)の値を再ロードする方法
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("selected \(arr[indexPath.row])")
if let cell = medTable.cellForRowAtIndexPath(indexPath) {
if cell.selected {
cell.accessoryType = .Checkmark
}
}
if let selectedrows = tableView.indexPathsForSelectedRows {
print("didDeselectRowAtIndexPath selected rows:\(selectedrows)")
let objRegisterModel: RegisterModel = RegisterModel()
medicationFor = "\(selectedrows)"
objRegisterModel.MedicationFor = medicationFor;
let splitString = objRegisterModel.MedicationFor.componentsSeparatedByString(",")
print("getSelectedrowsValues", splitString)
}
}
func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
print("deselected \(arr[indexPath.row])")
if let cell = medTable.cellForRowAtIndexPath(indexPath) {
cell.accessoryType = .None
}
if let sr = medTable.indexPathsForSelectedRows {
print("didDeselectRowAtIndexPath selected rows:\(sr)")
}
}
以下に示す、値が表示されているが、
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = medTable.dequeueReusableCellWithIdentifier(intervalCellIdentifier, forIndexPath: indexPath) as UITableViewCell
cell.accessoryType = .None
cell.textLabel?.text = arr[indexPath.row]
let objRegisterModel: RegisterModel = RegisterModelManager.getDBInstance().getRegisterDataByCurrentMedID(uid)
if objRegisterModel != "" {
medicationFor = objRegisterModel.MedicationFor
}
return cell
}
をチェックマークしないsqliteDBに保存された値が
**[<NSIndexPath: 0xc000000000200016> {length = 2, path = 0 - 1}]**
を条件に入れ、その後accessoryType
を設定し、前にDB、 (tableView:UITableView、numberOfRowsInSection section:Int)メソッドです。 –
func tableView(tableView:UITableView、numberOfRowsInSection section:Int) - > Int { return arr.count } –
そして、arr配列に格納されている値は何ですか? –