i have uitabbar
4 tabs.
i want specific function called in each viewcontroller
of tab when tabbaritem
pressed twice (like, user on profilevc
, presses on profile
item, want refresh view).
how can detect when user pressed on tab in view now?
thank you!
one option refreshing inside viewwillappear()
method. , second 1 considerably long.
in parent 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 } }
in each tab view controller,
class tabviewcontroller: uiviewcontroller, parentdelegate { func refresh() { //write code here } }
Comments
Post a Comment