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