ios - 检测页面何时按下 tabBar 项

标签 ios objective-c swift cocoa-touch uitabbarcontroller

我有一个带有 4 个标签的 UITabBar

tabBarItem 被按下两次时,我想在选项卡的每个 ViewController 中调用一个特定的函数(比如,用户现在在 ProfileVC 并按下 Profile 项,我想刷新 View )。

我如何才能检测到用户何时按下了他现在在其 View 中的选项卡?

谢谢!

最佳答案

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

在父 View Controller 中

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
    }
}

在每个选项卡 View Controller 中,

class TabViewController: UIViewController, ParentDelegate {

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

关于ios - 检测页面何时按下 tabBar 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38835276/

相关文章:

objective-c - 表格单元格的背景色

iphone - 如何重写以图像为背景的 GLCameraRipple 样本?

swift - 尝试检测 WKWebKit 何时开始加载视频以停止动画

ios - 将设置 UIView 属性显式停止/完成在同一属性上使用 UIViewPropertyAnimator 启动的现有动画

ios - iOS 14 SwiftUI 中不需要的位置动画

ios - Xcode 4.2.1 : UIPickerView causing memory leak, 使用 ARC

ios - 我可以将任务分配给 iOS 中的特定核心吗?

java - ios swift : looking for a cross compatible method to Java's Random() PRNG that has identical output

ios - 如何限制删除iOS应用程序? (MDM)

string - Swift 2.2 循环遍历字符串并获取字符和索引