Как изменить выбранный индекс tabbarcontroller? - PullRequest
0 голосов
/ 24 января 2020

У меня есть UICollectionView и UIContainerView в UIViewController. Встроенный вид контейнера - UITabBarController. Мне нужно изменить элемент в tabBarController в соответствии с выбором в UICollectionView. Как этого добиться?

1 Ответ

3 голосов
/ 24 января 2020

Шаг 1: Объявите переменную типа YourTabBarController

Шаг 2 : Go к раскадровке и нажмите на переход, который соединяет представление контейнера и контроллер панели вкладок. Дайте ему идентификатор как "tabBar" или как хотите. Я использовал tabBar в качестве идентификатора в приведенном ниже примере. Затем вам нужно вызвать метод prepareForSegue, и вы можете получить свой контроллер панели вкладок отсюда. Затем мы присвоим значение нашему yourTabController

Step3: В вашем методе didSelectItemAt теперь вы можете изменить выбранное значение индекса.

Вот так!

// step1 

private var yourTabController : YourTabBarController!

//step2 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if let tbc = segue.destination as? YourTabBarController, segue.identifier == "tabBar" {
     self.yourTabController = tbc
}

//step3 

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    self.yourTabController.selectedIndex = 1 // change it accordingly
}
...