Чего я хочу добиться:
"Login" ViewController, который переходит на Tab Bar Controller.Tab Bar Controller подключается к Navigation Controller, а затем к "Home" ViewController с Table View. Это моя страница "Главная / Добро пожаловать". Я хочу, чтобы внизу была панель вкладок, а также статическая таблица, которую я могу редактировать с помощью ячеек прототипа. Каждая ячейка переходит к другому ViewController.ViewController. На данный момент ячейка «Информация» должна перейти ко второму Navigation Controller, а затем к "Information" ViewController.Моя проблема:
Когда я выхожу из ячейки «Информация» в "Home" ViewController, панель вкладок «Информация» «сдвигается» вверх, а панель вкладок исчезает. Я экспериментировал с другими формами перехода, но ни одна из них не поддерживает панель вкладок.
Я хочу, чтобы вы могли использовать либо панель вкладок для перехода к Info ViewController, либо ячейку в Home / Welcome ViewController для перехода на информационную страницу.
На данный момент у меня вообще нет кода, я просто использую эти сегменты. Кто-нибудь знает, как я могу достичь того, чего хочу, и если да, предоставьте столько примеров кода, сколько я новичок в Swift.
Любая помощь приветствуется! Спасибо :)





Не добавляйте segue, чтобы открыть "Information" ViewController, который является частью UITabBarController.
Вы, должно быть, использовали didSelectRowAt для выбора ячеек в tableview. Просто добавьте в него одну строчку как есть:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true) {
self.tabBarController?.selectedIndex = 1
}
Это изменит вкладку и откроет "Information" ViewController.
Если вы хотите загрузить в "Information" ViewController данные, относящиеся к выбору ячейки, вы можете использовать Protocols или NotificationCentre, которые могут передавать данные в "Information" ViewController из Homeviewcontroller при выборе ячейки.
Спасибо за это, не могли бы вы объяснить мне, как заставить эту функцию, которую вы предоставили, работать? Что мне нужно сделать, или я могу использовать этот код как есть?
Обновил ответ
Я попытался поместить это в свой файл HomeViewController.swift следующим образом: import UIKit class HomeViewController: UIViewController, UITableViewDelegate { @IBOutlet weak var tableView: UITableView! func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { tableView.deselectRow(at: indexPath, animated: true) { self.tabBarController?.selectedIndex = 1 } } } ... но я получаю сообщение об ошибке "Дополнительный аргумент" анимирован "при вызове в строке 9
зачем лишний {}, замените этот { self.tabBarController?.selectedIndex = 1 } на self.tabBarController? .selectedIndex = 1.
Казалось, это исправило, но когда я пошел, чтобы перейти к HomeViewController, у меня появилось сообщение об ошибке в консоли: Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Light___Sound_App.HomeViewController 0x7f99bfe21e90> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key staticDataSource.'
у вас есть предложения? Мне нужно, чтобы это приложение было сделано как можно скорее, поэтому любая помощь будет оценена по достоинству.
Я надеюсь, что вы удалили переход от Home / Welcome VC к контроллеру навигации Information VC. Если вы прокомментировали ошибку, проверьте это: tech-recipes.com/rx/52021/…
вещи не видны на экране, которым вы предоставили общий доступ.