i want pass array in popovercontroller , sort table view controller, sort , give main controller.
my code popovercontroller
protocol myprotocol { func refreshpagecontroller(sortedproperties:[property]) } class sortingpopovercontroller: uiviewcontroller { @iboutlet var propertynameview: uiview! @iboutlet var addressnameview: uiview! @iboutlet var imgsortingpropertyname: uiimageview! @iboutlet var propnamesrtimage: uiimageview! @iboutlet var addresssrtimage: uiimageview! @iboutlet var imgtickpropertyname: uiimageview! @iboutlet var imgtickaddress: uiimageview! var properties:[property] = [property]() var utility = utility() var srtproperties : [property] = [] var mdelegate: myprotocol? override func viewdidload() { super.viewdidload() println(properties.count) let propertynamesorting = uitapgesturerecognizer(target: self, action: "propertynamesorting:") self.propertynameview.addgesturerecognizer(propertynamesorting) let addresssorting = uitapgesturerecognizer(target: self, action: "addresssorting:") self.addressnameview.addgesturerecognizer(addresssorting) imgtickpropertyname.hidden = true imgtickaddress.hidden = true } func removeviewcolorselection(uiviewref: uiview,tickimgshow: uiimageview) { uiviewref.backgroundcolor = utility.uicolorfromhex(0xf0f0f0) uiviewref.alpha = 0.97 tickimgshow.hidden = true } func addselectedcolorview(uiviewref: uiview,tickimgshow: uiimageview) { uiviewref.backgroundcolor = uicolor.whitecolor() uiviewref.alpha = 0.97 tickimgshow.hidden = false } func propertynamesorting(sender:uitapgesturerecognizer) { println("propertynamesorting") if propertynamesrt == false { ascsorting == false addselectedcolorview(propertynameview,tickimgshow: imgtickpropertyname) propertynamesrt = true removeviewcolorselection(addressnameview,tickimgshow: imgtickaddress) addresssrt = false if ascsorting == false { ascsorting = true propnamesrtimage.image = uiimage(named: "sorting-ascending-22pt") properties.sort(sorterforbuildingasc) } else { ascsorting = false propnamesrtimage.image = uiimage(named: "sorting-desending-22pt") properties.sort(sorterforbuildingdesc) } } else { if ascsorting == false { ascsorting = true propnamesrtimage.image = uiimage(named: "sorting-ascending-22pt") properties.sort(sorterforbuildingasc) } else { ascsorting = false propnamesrtimage.image = uiimage(named: "sorting-desending-22pt") properties.sort(sorterforbuildingdesc) } } mdelegate?.refreshpagecontroller(properties) } func addresssorting(sender:uitapgesturerecognizer) { println("addresssorting") if addresssrt == false { ascsorting = false addselectedcolorview(addressnameview,tickimgshow: imgtickaddress) propertynamesrt = false removeviewcolorselection(propertynameview,tickimgshow: imgtickpropertyname) addresssrt = true if ascsorting == false { ascsorting = true addresssrtimage.image = uiimage(named: "sorting-ascending-22pt") } else { ascsorting = false addresssrtimage.image = uiimage(named: "sorting-desending-22pt") } } else { if ascsorting == false { ascsorting = true addresssrtimage.image = uiimage(named: "sorting-ascending-22pt") } else { ascsorting = false addresssrtimage.image = uiimage(named: "sorting-desending-22pt") } } }
code open controller main controller
var sortingpopview = sortingpopovercontroller(nibname: "popview",bundle: nil ) sortingpopview.properties = properties var sortingpopovercontroller = uipopovercontroller(contentviewcontroller: sortingpopview) sortingpopovercontroller.popovercontentsize = cgsize(width: 250, height: 100) sortingpopovercontroller.presentpopoverfrombarbuttonitem(sortingbtn, permittedarrowdirections: uipopoverarrowdirection.up , animated: true)
issue can't call main view controller method sort array.
you forgot set delegate on popoverviewcontroller.
so when calling in popovercontroller:
mdelegate?.refreshpagecontroller(properties)
nothing happens because mdelegate
nil
when creating popoverviewcontroller have set delegate:
var sortingpopovercontroller = uipopovercontroller(contentviewcontroller: sortingpopview) sortingpopovercontroller.mdelegate = self
Comments
Post a Comment