gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 06:37:23 26 4
gpt4 key购买 nike

我有一个带有 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com