ios - Swift - Delegate not calling method from other class -
i'm trying change label's text in view controller when button pressed. here's how i'm setting delegate:
in firstviewcontroller under import uikit
@objc protocol mydelegate{ optional func makescore() } in firstviewcontroller under class firstviewcontroller: uiviewcontroller
var delegate:mydelegate? in firstviewcontroller when button pressed
delegate?.makescore!() in secondviewcontroller (where makescore() located)
class secondviewcontroller: uiviewcontroller, mydelegate the makescore() method in secondviewcontroller
func makescore() { println("worked") } it's not logging when button pressed. i'm pretty sure set delegates , protocols correctly. see missing?
note: firstviewcontroller , secondviewcontroller not connected segues. both in scrollview.
i can see added second view controller programmatically these lines:
let vc6 = storyboard.instantiateviewcontrollerwithidentifier("second") as! secondviewcontroller self.addchildviewcontroller(vc6) self.scrollview.addsubview(vc6.view) just add 1 line, reads this:
let vc6 = storyboard.instantiateviewcontrollerwithidentifier("second") as! secondviewcontroller self.delegate = vc6 self.addchildviewcontroller(vc6) self.scrollview.addsubview(vc6.view) edit: on side node, i'm sure delegate best approach you're trying do. you'd better off making global reference secondviewcontroller, calling on self.vc6.makescore(). delegates typically used calling objects not contained in view controller
Comments
Post a Comment