ios - Its possible to change font of UILabel from other ViewController class -
i have viewcontroller consist of uilabel , uibutton. onclick uibutton popover present show tableview. each cell of tableview represent different font option.
i want change font of uilabel based on user selected font tableviewcell. how can achieve uilabel , tableview in different viewcontroller class.
please me.
func tableview(tableview: uitableview, didselectrowatindexpath indexpath: nsindexpath) { var row = indexpath.row // how update label here } edit : fond answer not able understand return in objective c update viewcontroller label text different view
you can use delegate. in popover swift file create such protocol:
protocol popoverdelegate { func didselectfont(font: uifont) } in popover class create such implementation of newly created protocol:
class popoverviewcontroller : uitableviewcontroller { var delegate: popoverdelegate? func tableview(tableview: uitableview, didselectrowatindexpath indexpath: nsindexpath) { var row = indexpath.row // how update label here delegate.didselectfont(youfonthere) } } now in main view controller, if presenting popover programmatically, should set popover's delegate property self. if presenting popover storyboard, handle segue:
override func prepareforsegue(segue: uistoryboardsegue, sender: anyobject?) { // new view controller using [segue destinationviewcontroller]. // pass selected object new view controller. let destination = segue.destinationviewcontroller as! popoverviewcontroller destination.delegate = self } now implement delegate method:
func didselectfont(font: uifont) { //update label's font } and of course don't forget add delegate main view controller:
class mainviewcontroller: uiviewcontroller, popoverdelegate { ... hope helps!
Comments
Post a Comment