Я добавил table view внутрь tableViewController и присвоил первому table view класс но этот класс похоже не поддерживает методы numberOfSections() и tableView() . Выдает ошибку :Method does not override any method from its superclass .Как исправить?
Как отобразить динамическую таблицу внутри статической
Вы имеете ввиду, что хотите добавить в UITableViewCell (в таблице tableViewController) таблицу?
Создайте еще один TableViewController. В tableViewController инициализируйте его и добавьте в Cell как View.
override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
let newTableVC = NewTableTableViewController() //Создаем объект таблицы которая будет внутри Cell
cell.addSubview(newTableVC.view)
}
Зачем? Если вам надо несколько таблиц на одном вью, так и используйте обычный вьюконтроллер…
Я в статический TableViewController хочу вставить UITableViewContrroller чтобы отображать информацию из БД внутри этого TableViewController,но чтобы сверху была другая информация(статическая)
https://swiftbook.ru/content/26-index/ - я уверен, этот курс, самое то, что вам сейчас нужно!
Хорошо. Давайте попробуем по шагам:
Напишите внятно, что вы хотите сделать. Без использования терминологии.
К примеру, Вася получил 20 яблок. 2 яблока Вася съел и 18 отправил в погреб на хранение. Но бандиты узнали, что Вася богат в яблоках и заставляют его показать сколько яблок у него осталось.
Я так наверное быстрей пойму ваш случай. А то tableView, UITableViewController, сплошная мешанина терминов, без привязки к их прямому назначению.
Хорошо,у меня приложения с рейтингом скейт-парков,мне надо чтобы при нажатии на выбранный скейтпарк отображалась его фотография и название а снизу отзывы,так вот эти отзывы берутся из БД и должны отображаться в таблице,у меня получается вывести эти данные только на отдельном TableViewController,а не на том,на котором уже отображаются картинка и название
- Делается общая таблица со скейтами.
- При тапе на ячейку происходит переход на другой вью контроллер, в котором детально все оформлено.
Не нужна в этом контроллере еще одна таблица. Тут все достаточно просто.
- общий список парков
- детализация конкретного парка на другом контроллере
Скиньте ссылку на архив с проектом. Попрорую показать в коде как и что делать
а может вам попробовать сделать кастомную ячейку и идти не от названия и картинки, а от отзывов? Т.е. изначально делаете таблицу, в которой отображаются отзывы. А затем добавляете в ячейку image view и label. Единственное, что в этом случае фотография и название будут повторяться в каждом отзыве. Но возможно оно так и лучше.
дотсаточно одной таблицы для деталей.
делается все просто: кол-во статических ячеек + кол-во ячеек с отзывами и получится та же самая общая таблица.
когда я прописываю в общий класс TableViewController override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
чтобы задать ячейки таблицы с отзывами,то ломается вся таблица и статические ячейки не отображаются,как сделать так чтобы статические ячейки не менялись а динамические менялись,в какое место нужно прописать метод tableView() чтобы заполнить таблицу данными из БД
как мне сделать так,чтобы статические данные оставались и не менялись,а динамическая часть таблицы могла меняться и заполнялась данными из БД
То есть нужно в ячеку перетащить TableViewCell или что?А куда методы для заполнения таблицы прописывать?
ничего не нужно перетаскивать. все делается в одной таблице.
для статических ячеек создаете свои кастомные классы, для отзывов - свой класс.
регистрируете эти классы для таблицы, все как в обычном случае.
вся фишка в indexPath.row
в методе numberOfRowsInSection возвращаете кол-во статических ячеек + кол-во отзывов
после чего в методе cellForItemAt делаете проверку сперва на статические ячейки
if indexPath.row == 0 {} else if indexPath.row == 1 {} else if indexPath.row == 2 {} else { //тут заполняете отзывы }
единственное но, в месте заполнения отзывов, для получения текущего отзыва из массива, вам нужно будет отнимать кол-во статических ячеек, т.е. let item = feedbackArray[indexPath.row - 3] как пример, т.к. я указал 3 статические ячейки (0, 1 и 2)