Краткое описание.изменение tabBarController Index из другого viewController programatically
У меня есть ContainerViewController
, что я нажимаю navigationStack
.
ContainerViewController
имеет 2 ребенка UIViewController
. A SlidePanelViewController
(выпадающее меню) и CenterViewController
(содержание), мой CenterViewController
является UITabBarController
, который в настоящее время имеет 2 UIViewController
.
У меня есть кнопка в моем меню, что мне нужно изменить UIViewController
на моем tabBarController
. Однако ничего не происходит, когда я вызываю свои функции.
Вот функция, которую я пытаюсь вызвать:
func premiumFormulaTapGesture() {
tabBarController?.selectedIndex = 1
}
(я также попытался установить его в 0 и 2. Тем не менее без результатов.) Я пытался ставить self.
перед ним без каких-либо удачи.
Я также попытался поставить его как функцию в своем ContainerViewController
. Но это тоже не сработало.
Вот как я устанавливаю мой UITabBarController
:
var centerTabBarController: UITabBarController!
в ViewDidLoad()
:
let tabBarController = UITabBarController()
let suggestionsVC = mySuggestions_VC()
let testVC = detaiLSuggestion_VC()
let controllers = [suggestionsVC,testVC]
tabBarController.setViewControllers(controllers, animated: false)
centerViewController = tabBarController
view.addSubview(tabBarController.view)
addChildViewController(tabBarController)
мой tabBarController
действительно обнаруживается. И я могу вручную коснуться 2 кнопок на нем, где он переключается между viewControllers
, как и ожидалось. Позднее я планирую скрыть UITabBarController
и использовать меню. UITabBarController
будет моим методом изменения UIViewController
из меню.
Также уточнить. Я не использую раскадровки.
Любая помощь в изменении viewControllers
в моем tabBarController
была бы принята с благодарностью!
Когда вы вызываете 'tabBarController ?.selectedIndex = 1', что такое' tabBarController'? (Я вижу, что у вас есть это имя переменной, определенное локально в 'viewDidLoad', но что это значит в' premiumFormulaTapGesture'?) –
Вы совершенно правы. Я создал новый tabBarController под названием menuTabBarController, определил его над классом. И изменил мои функции на menuTabBarController.selectedIndex = 1, и он отлично работал. Огромное спасибо. Если вы хотите пойти дальше и добавить ответ, я соглашусь с ним :) –