У меня есть вопрос относительно запуска отдельного перехода и сохранения пользовательских данных в каждом объекте tableView (Patient).Информация, которую я добавляю, одинакова для каждого пациента.Но у меня проблема в том, что информация одного пациента все еще видна другим пациентам.
import UIKit import RealmSwift
class PatienIDViewController: UITableViewController {
let realm = try! Realm()
var itemArray: Results<Item>?
override func viewDidLoad() {
super.viewDidLoad()
//// Nicht vergessen
loaditems()
// // Do any additional setup after loading the view.
}
//Mark - TableView Datasource Methods
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return itemArray?.count ?? 1
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ToDoItemCell", for: indexPath)
if let item = itemArray?[indexPath.row] {
cell.textLabel?.text = item.title
// Ternary operator
// value = condition ?
cell.accessoryType = item.done ? .checkmark : .none
}else{
cell.textLabel?.text = "No Patients added"
}
return cell
}
//Mark - TableView - Delegate Methods
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath:
IndexPath) {
if let item = itemArray? [indexPath.row] {
do{
try realm.write {
item.done = !item.done
}
}catch{
print ("Error saving done Status, \(error)")
}
}
tableView.reloadData()
// print(itemArray[indexPath.row])
// Accessory
// context.delete(itemArray[indexPath.row])
// itemArray.remove(at: indexPath.row)
// itemArray[indexPath.row].done = !itemArray[indexPath.row].done
// save(item: Item)
tableView.deselectRow(at: indexPath, animated: true)
// Hier könnte man einen Button einfügen
}
@IBAction func AddButtonPressed(_ sender: UIBarButtonItem) {
var textField = UITextField()
let alert = UIAlertController(title: "Add New Patient", message: "", preferredStyle: .alert)
let action = UIAlertAction(title: "Add Patient", style: .default) { (action) in
// what will happen once the surgeon clicks the Add Patient Item
let newItem = Item()
newItem.title = textField.text!
// newItem.dateCreated = Date()
newItem.done = false
self.save(item: newItem)
}
alert.addTextField { (alertTextField) in
alertTextField.placeholder = "Add New Patient iD"
print(alertTextField.text!)
textField = alertTextField
}
alert.addAction(action)
present(alert, animated: true, completion: nil)
}
func save (item: Item) {
do {
try realm.write {
realm.add(item)
}
}catch{
print ("Error saving context \(error)")
}
self.tableView.reloadData()
}
/// Read the Data
func loaditems() {
itemArray = realm.objects(Item.self)
tableView.reloadData()
}
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == UITableViewCell.EditingStyle.delete{
if let item = itemArray?[indexPath.row] {
try! realm.write {
realm.delete(item)
}
tableView.deleteRows(at: [indexPath], with: UITableView.RowAnimation.automatic)
}
}
}
}
Изображение TableView, где хранятся отдельные объекты