Панель вкладок исчезает при переходе

Панель вкладок исчезает при переходе

Чего я хочу добиться:

  • У меня есть "Login" ViewController, который переходит на Tab Bar Controller.
  • Мой Tab Bar Controller подключается к Navigation Controller, а затем к "Home" ViewController с Table View. Это моя страница "Главная / Добро пожаловать". Я хочу, чтобы внизу была панель вкладок, а также статическая таблица, которую я могу редактировать с помощью ячеек прототипа. Каждая ячейка переходит к другому ViewController.
  • Затем я хочу иметь возможность нажимать на каждую ячейку (на данный момент у меня есть настройка «Информация») и переходить к соответствующему ViewController. На данный момент ячейка «Информация» должна перейти ко второму Navigation Controller, а затем к "Information" ViewController.
  • Оттуда мне нужна еще одна статическая таблица, которую я могу редактировать с помощью Prototype Cells. Каждая ячейка перейдет в отдельный стек ViewControllers.

Моя проблема: Когда я выхожу из ячейки «Информация» в "Home" ViewController, панель вкладок «Информация» «сдвигается» вверх, а панель вкладок исчезает. Я экспериментировал с другими формами перехода, но ни одна из них не поддерживает панель вкладок. Я хочу, чтобы вы могли использовать либо панель вкладок для перехода к Info ViewController, либо ячейку в Home / Welcome ViewController для перехода на информационную страницу.

На данный момент у меня вообще нет кода, я просто использую эти сегменты. Кто-нибудь знает, как я могу достичь того, чего хочу, и если да, предоставьте столько примеров кода, сколько я новичок в Swift.

Любая помощь приветствуется! Спасибо :)

вещи не видны на экране, которым вы предоставили общий доступ.

Satish 27.09.2018 14:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
176
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не добавляйте 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 при выборе ячейки.

Спасибо за это, не могли бы вы объяснить мне, как заставить эту функцию, которую вы предоставили, работать? Что мне нужно сделать, или я могу использовать этот код как есть?

Aaron 27.09.2018 15:00

Обновил ответ

Amit 27.09.2018 15:18

Я попытался поместить это в свой файл 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

Aaron 28.09.2018 00:30

зачем лишний {}, замените этот { self.tabBarController?.selectedIndex = 1 } на self.tabBarController? .selectedIndex = 1.

Amit 28.09.2018 06:57

Казалось, это исправило, но когда я пошел, чтобы перейти к 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.'

Aaron 29.09.2018 00:04

у вас есть предложения? Мне нужно, чтобы это приложение было сделано как можно скорее, поэтому любая помощь будет оценена по достоинству.

Aaron 29.09.2018 10:46

Я надеюсь, что вы удалили переход от Home / Welcome VC к контроллеру навигации Information VC. Если вы прокомментировали ошибку, проверьте это: tech-recipes.com/rx/52021/…

Amit 29.09.2018 15:36

Другие вопросы по теме