检测页面何时按下 tabBar 项

Detecting when tabBar item is pressed when is page

我有一个 UITabBar 有 4 个标签。

我希望当 tabBarItem 被按下两次时(例如,用户现在在 ProfileVC 并按下在 Profile 项上,我想刷新视图)。

我如何检测用户何时按下了他现在在其视图中的选项卡?

谢谢!

一种选择是在 viewWillAppear() 方法中进行刷新。第二个相当长。

在父视图控制器中

protocol ParentDelegate {
     func refresh()
}

class LandingViewController: UIViewController, UITabBarDelegate {

    var delegate: ParentDelegate?
    var selectedItem: UITabBarItem!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.tabBar.delegate = self
        self.selectedItem = self.tabBar.selectedItem
    }

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

        if segue.identifier == "SegueNameForDestinationViewController1" {

            if let vc = segue.destinationViewController as? YourDestinationViewController1 {
                self.delegate = vc.self
            }

        } else if segue.identifier == "SegueNameForDestinationViewController2" {

            if let vc = segue.destinationViewController as? YourDestinationViewController2 {
                self.delegate = vc.self
            }

        }
    }

    func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {

        if self.selectedItem == item {
            self.delegate?.refresh()
        }
        self.selectedItem = item
    }
}

在每个选项卡视图控制器中,

class TabViewController: UIViewController, ParentDelegate {

    func refresh() {
        //write your code here
    }
}