ios - How to redraw my view in SWIFT? -
on ipad app, have uiviewcontroller button open modalview.
@ibaction func showpostcommentviewcontroller(sender: anyobject){ let modalview = uistoryboard(name: "main", bundle: nil).instantiateviewcontrollerwithidentifier("postcommentviewcontroller") as! postcommentviewcontroller modalview.modaltransitionstyle = uimodaltransitionstyle.coververtical modalview.modalpresentationstyle = uimodalpresentationstyle.formsheet modalview.delegate=self self.presentviewcontroller(modalview, animated: true, completion: nil) } when close modalview dismissviewcontrolleranimated, "refresh" view controller (because added new content). modal view "formsheet" style, viewdidappear or viewwillappear aren't called.
i tried use setneedsdisplay, doesn't work.
i don't know how do.
this perfect use case delegate pattern.
1) define protocol within postcommentviewcontroller.
protocol postcommentvcinformationdelegate { func hasdismissedpostcommentviewcontroller(controller:postcommentviewcontroller) } 2) set delegate variable within postcommentviewcontroller
var delegate: postcommentvcinformationdelegate? 3) when dismiss postcommentviewcontroller, call delegate?.hasdismissedpostcommentviewcontroller(self)
this send information presenting vc.
4) have our presenting view controller conform protocol.
class viewcontroller: uiviewcontroller, postcommentvcinformationdelegate 5) when presenting modal view:
modalview.delegate = self 6) finally, implement:
func hasdismissedpostcommentviewcontroller(controller: postcommentviewcontroller) { //update }
Comments
Post a Comment