ios - 检测点击 UITabBarController 中的选项卡

标签 ios swift uitabbarcontroller uitabbar

我已经像下面这样以编程方式创建了一个 tabBarController

let tabbarController = UITabBarController()
    let homeViewController = HomeViewController()
    let rewardsViewController = RewardsViewController()
    let moreViewController = NewMoreViewController()

    let homeNVc = UINavigationController()
    homeNVc.viewControllers = [homeViewController]

    let rewardsNVc = UINavigationController()
    rewardsNVc.viewControllers = [rewardsViewController]

    let moreNVc = UINavigationController()
    moreNVc.viewControllers = [moreViewController]

    tabbarController.viewControllers = [homeNVc, rewardsNVc, moreNVc]

    tabbarController.tabBar.items![0].title = NSLocalizedString("Dashboard", comment: "")
    tabbarController.tabBar.items![1].title = NSLocalizedString("Prämien", comment: "")
    tabbarController.tabBar.items![2].title = NSLocalizedString("Mehr", comment: "")
    self.window?.rootViewController = tabbarController
}

一切正常。我可以完美地在选项卡中移动,现在我的 homeViewController 中有一个 tableView。当用户点击我的 TabBarController 的第一个选项卡时,我想重新加载。即使用户已经在那个 viewController 上,我也想重新加载 tableView。

那么基本上我怎样才能检测到用户点击了第一个 ViewController ?

请指导我谢谢:-)

最佳答案

在您的 homeViewController 中,您可能需要实现此委托(delegate)方法:

func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {

    //ask where it is first tab bar item 
    if self.tabBarController?.selectedIndex == 0 {
        // your action, e.g.:
        self.tableView.reloadData()
    }

}

注意:

你需要像这样维护你的类:

一)

class YourTabBarController: UITabBarController { // inherit from UITabBarController

或者这个:

b)

class YourViewController: UIViewController, UITabBarDelegate { // set protocol

关于ios - 检测点击 UITabBarController 中的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39328594/

相关文章:

swift euc-kr 韩语编码不起作用。但可以在 python 中使用

ios - 如何在 Swift Xcode 8.2 中以编程方式将导航 Controller 嵌入到选项卡栏 Controller 中?

ios - UITabBar如何设置圆角和阴影?

iPhone:选项卡的 selectedIndex 值应该一致,但事实并非如此

ios - 进程间 SQLite 线程安全(在 iOS 上)

ios - 从 Parse 中获取子类对象

cocoa - Swift:尝试在循环中更新 NSTextField,但它只获取最后一个值

IOS/swift/AVSpeechSynthesizer : Control Speed of Enqueued Utterances

ios - iPhone - 更新 subview 时调用layoutSubviews

ios - 导航推送时隐藏自定义中间按钮 swift 4