Я знаю, что вокруг много подобных вопросов - я боюсь, что моя проблема находится на таком базовом уровне, что все остальные вопросы, которые я мог бы найти, намного сложнее, и, тем не менее, похоже, не совсем отвечают на это.
Я внедряю «Настройки» в своем приложении для дневников - и мне нужно позволить пользователю иметь возможность редактировать (среди прочего) название дневника.
Чтобы понять мою проблему: для начала в приложении у вас есть tableView со всеми текущими дневниками - затем, когда вы вводите конкретный дневник, именно здесь вы найдете «Настройки» для редактирования этого конкретного дневника.
Здесь, при нажатии на tableViewCell с именем «Имя дневника», вы вводите простой viewController с textField (содержащим ваше текущее имя дневника) и кнопку, которая вернет вас назад и изменит имя дневника на новое.введите в этом текстовом поле.
Вот мой текущий код на этой «кнопке сохранения»:
@IBAction func saveChanges(_ sender: Any) {
let newDiaryName = Diaries() // Here, I need to reach the specific diary that we are currently editing!
diary?.diaryName = changeDiaryNameTextField.text!
let realm = try! Realm()
try! realm.write {
realm.add(newDiaryName)
}
self.navigationController?.popViewController(animated: true)
}
}
Извините, но я новичок в этом мире ...
Мой вопрос: как, черт возьми, я могу добраться до конкретного дневника, в котором я сейчас нахожусь?- И является ли эта функция даже правильной для использования при обновлении объекта?
Вернувшись к первому табличному представлению со списком всех дневников, я сохранил дневники примерно так:
(так что я предполагаю, что один дневник похож на allDiaries [indexPath] .. Нокак мне этого достичь из всего этого другого viewController?)
let allDiaries: Results<Diaries>
required init?(coder aDecoder: NSCoder) {
let realm = try! Realm()
allDiaries = realm.objects(Diaries.self).sorted(byKeyPath: String("dateCreated"), ascending: false)
super.init(coder: aDecoder)
}
Извините за длинное объяснение, я не знал, как спросить иначе!
Спасибо!