swift - Popovers in Storyboard, how to handle the delegate -
in storyboard have view controller has segue viewcontroller, "present popover" applied. if don't add code, works id expect.
issue: need delegate working can data popover. have created delegate in popover.
i have added
class loginview: uiviewcontroller,uipopoverpresentationcontrollerdelegate, uipopovercontrollerdelegate,keypaddelegate i have added functions main view controller.
issue have how set delegate on segue.
i have tried
override func prepareforsegue(segue: uistoryboardsegue, sender: anyobject?) { if segue.identifier == "keypadload" { let popoverviewcontroller = segue.destinationviewcontroller as! uiviewcontroller popoverviewcontroller.modalpresentationstyle = uimodalpresentationstyle.popover popoverviewcontroller.popoverpresentationcontroller!.delegate = self } } the segue defiantly called keypadload when delegate functions should called in popover nothing happens.
what doing wrong
thanks
you have implement uipopoverpresentationcontrollerdelegate in class presents popover. methods of uipopoverpresentationcontrollerdelegate protocol let customize behavior of popover-based presentation.
if have set segue go popover , set segue present popover class has :
class viewcontroller: uiviewcontroller, uipopoverpresentationcontrollerdelegate { override func viewdidload() { super.viewdidload() // additional setup after loading view, typically nib. } override func didreceivememorywarning() { super.didreceivememorywarning() // dispose of resources can recreated. } override func prepareforsegue(segue: uistoryboardsegue, sender: anyobject?) { var popover = segue.destinationviewcontroller as! popoverviewcontroller popover.popoverpresentationcontroller!.delegate = self } // tells delegate popover dismissed. func popoverpresentationcontrollerdiddismisspopover(popoverpresentationcontroller: uipopoverpresentationcontroller) { println("dismissed") } } where class popoverviewcontroller uiviewcontroller handle popover, no more, code :
class popoverviewcontroller: uiviewcontroller { override func viewdidload() { super.viewdidload() // additional setup after loading view. } override func didreceivememorywarning() { super.didreceivememorywarning() // dispose of resources can recreated. } } with above code should see message:
dismissed every time popoverviewcontroller dismissed.
i hope you.
Comments
Post a Comment