Как отобразить данные из контроллера всплывающего представления

#swift

#swift

Вопрос:

Я пытаюсь создать приложение напоминаний, и у меня есть контроллер представления с табличным представлением. Когда я нажимаю кнопку, появляется всплывающий контроллер представления для ввода имени и описания. Когда я закрываю всплывающее окно, текст, введенный в двух текстовых полях, не отображается в моей ячейке табличного представления. Функция печати заключалась в том, чтобы просто проверить, добавлено ли имя и описание категории ко всем категориям, что и было.

   @IBAction func createPressed(_ sender: Any) {
    allCategories.append(Categories(name: nameTF.text!, description: descriptionTF.text!, activities: []))
    print(allCategories)
    dismiss(animated: true, completion: nil)

}
  

редактировать вот код в контроллере представления, который имеет табличное представление:
Редактировать # 2: я напечатал allCategories в viewWillAppear в reloadData(), и он печатает правильную вещь. Я изменил возврат в numberOfRowsInSection на allCategories.count, и теперь он отображает данные в табличном представлении, но каждый раз, когда я добавляю категорию / описание, он повторно отображает первую категорию и описание. Кроме того, он отображает название категории в одной ячейке, а описание — в другой, я просто хочу, чтобы оно отображало имя и имело описание в качестве подзаголовка

 class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var theTableView: UITableView!

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return allCategories.count
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    //when cell is pressed
}
func numberOfSections(in tableView: UITableView) -> Int {
    return allCategories.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = UITableViewCell(style: UITableViewCell.CellStyle.default, reuseIdentifier: "myCell")
    cell.textLabel!.text = allCategories[indexPath.row].name
    return cell
}


override func viewWillAppear(_ animated: Bool) {
    theTableView.reloadData()
    print(allCategories)
}
  

Комментарии:

1. Вы не добавляете все категории контроллера представления с помощью tableview.

2. Можете ли вы добавить код, в котором вы представляете контроллер всплывающего представления

3. @RaziTiwana Я только что сделал переход от контроллера представления, который содержит табличное представление, которое представлено модально. Если это поможет, я запишу это в контроллер представления с табличным представлением: функция TableView(_ TableView: UITableView, cellForRowAt indexPath: indexPath) -> UITableViewCell { пусть ячейка = UITableViewCell(стиль: UITableViewCell. Стиль ячейки. по умолчанию, повторное использование идентификатора: «myCell») cell.textLabel!.text = allCategories[indexPath.row].name возвращает ячейку } переопределить функцию viewWillAppear(_ animated: Bool) { theTableView.reloadData() }

4. хорошо, просто скажите мне, что ViewController с табличным представлением представляет ViewController с createPressed правильным? и у вас есть `allCategories` в обоих контроллерах?

5. Тогда, возможно, ваша функция reloadData () не вызывается или у вас возникли проблемы с numberOfRowsInSection