检测页面何时按下 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
}
}
我有一个 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
}
}