Swift, Pass the array in uiPopoverController -


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