Я пытаюсь создать приложение, в котором одна из функций состоит в том, чтобы в одном viewController пользователь мог вводить некоторые данные о данном человеке (фотографию, имя и ответ на определенный вопрос).При нажатии кнопки «Сохранить нового человека», пользователь должен быть перенаправлен на предыдущий viewController, который, помимо прочего, содержит tableView.
В этом табличном представлении я хочу создать новую ячейку каждый раз, когда пользователь нажимает кнопку «Сохранить нового человека» в другом viewController.Ячейка должна, конечно, содержать имя человека (и в идеале также миниатюру фотографии).
Теперь важно, чтобы данные сохранялись «внутри» - также после выхода из определенного viewController или закрытия приложения.Поэтому я использую Realm в качестве базы данных для хранения всех данных.
Я очень новичок в использовании Realm, поэтому, возможно, мои вопросы кажутся глупыми.По сути, я думаю, что мне удалось заставить «Сохранить нового человека кнопку» сохранить все данные в базе данных области.Но при попытке заставить кнопку создать новые ячейки (которые должны остаться, когда-то созданные !!) в предыдущем viewController ... Все виды странных вещей случаются!
То, что показано под кодом, является моей текущей попыткой передать хотя бы имя через segue, но это создает несколько проблем: ячейки не остаются.Если вы попытаетесь добавить новую ячейку, она просто переопределит старую.И, наконец, PeopleData.count, по-видимому, считает количество букв в имени и создает fx.5 одинаковых ячеек для длинного имени из 5 букв!: D
Я уверен, что это не правильный способ передачи данных ... Так, каков наилучший способ представить эти данные?Чтобы ячейки оставались однажды созданными - и чтобы пользователь мог добавить несколько новых людей / несколько новых ячеек, не переопределяя старые!
Соответствующий код:
viewController, где пользователь может ввестиdata:
@IBAction func SaveNewPerson() {
let NewPerson = person()
NewPerson.name = PersonName.text!
NewPerson.answer = PersonAnswer.text!
NewPerson.extraIdentifier = PersonExtraIdentifier.text!
let realm = try! Realm()
try! realm.write {
realm.add(NewPerson)
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// let allPeople = realm.objects(person.self)
let SomePersonName = PersonName.text!
if segue.identifier == "PassingSomeInfo" {
if let vc = segue.destination as? AllPersonsInYourDiary {
vc.PeopleData = SomePersonName
}
}
Viewcontroller с таблицей ViewView:
var PeopleData: ""
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return PeopleData.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Person1", for: indexPath)
cell.textLabel?.text = self.PeopleData
cell.textLabel?.numberOfLines = 0
cell.textLabel?.font = UIFont.preferredFont(forTextStyle: UIFontTextStyle.headline)
return cell
}
Третий viewController (используется для хранения всех персональных данных):
class person: Object {
@objc dynamic var name = ""
@objc dynamic var answer = ""
@objc dynamic var extraIdentifier = "" }
Спасибо!