#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