ios - Loading activity indicator for display during async request -


i have been trying implement code display activity indicator in sub view during request. it's meant used loading, never displays yet if go segue , return indicator there. makes me believe superview doesn't reloaded until function has run time sub view doesn't need displayed

example:

loadingindicator.startindicator(self.view)

        let parameters = parameters()          parameters.addparams(search: search)         let request = searchrq(parameters: parameters)          request.getresponse()          while !request.iscomplete         {             //wait         }          let results = request.parseresponse()         self.results = results          loadingindicator.stopindicator(self.view)          performseguewithidentifier("showsearchresults", sender: sender) 

as matt stated, need add activity indicator view (or ui changes matter) on main thread.

you can so:

dispatch_async(dispatch_get_main_queue(),{     self.view.addsubview(activityindicator) }) 

to move waiting response off main thread, change getresponse function has completion handler. :

func getresponse(responsereceived:() ->void) {     // once response:     responsereceived() } 

then can appropriate changes after you've received response.

getresponse {     let results = request.parseresponse()     self.results = results      loadingindicator.stopindicator(self.view)      performseguewithidentifier("showsearchresults", sender: sender) } 

Comments