DidSelect TabBar Элемент не вызывается - PullRequest
0 голосов
/ 07 ноября 2019

Итак, у меня есть UITabBarController с двумя встроенными контроллерами представления. Я реализовал метод панели выбора действительно, когда пользователь выбирает вкладку, он передает значение в этот контроллер. Однако, когда tabBarController загружается в первый раз, метод did select не вызывается, хотя у меня есть

self.selectedIndex = 0

, который выбирает первый индекс. По сути, я просто пытаюсь автоматически выбрать первую вкладку «Элемент панели» при загрузке представления, и она вызывает метод didSelectTabBarItem

  func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
}

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Вопрос похож на этот. tabBarController didSelect не вызывается

optional func tabBarController(_ tabBarController: UITabBarController, 
                     didSelect viewController: UIViewController)

В iOS v3.0 и более поздних версиях контроллер панели вкладок вызывает этот метод независимо от того, изменился ли выбранный контроллер представления. Кроме того, он вызывается только в ответ на нажатия пользователя на панели вкладок и не вызывается, когда ваш код изменяет содержимое панели вкладок программным способом.

0 голосов
/ 07 ноября 2019

Скопируйте это в свой код

class HomeTabBarVC: UITabBarController {

    var isIpad = false
    let button = UIButton.init(type: .custom)
    var index = 0
    override func viewDidLoad() {
        super.viewDidLoad()

        self.delegate = self


        APPDELEGATE.tabBar = self 

    }

}

extension HomeTabBarVC : UITabBarControllerDelegate {
    override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
        print("the last selected index is : \(selectedIndex)")
        APPDELEGATE.tabBarLastSelectedIndex = selectedIndex 
        print("the current selected index is : \(String(describing: tabBar.items?.index(of: item)))")
        APPDELEGATE.tabBarCurrentSelectedIndex = tabBar.items?.index(of: item) ?? 0
        }

   }

В appdelegate объявите эту переменную,

 var tabBar : UITabBarController?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...