ios - Weird delay in UIPopoverController dismissal -


maybe purely simulator related. have not tried on actual device yet.

i'm on latest greatest macbook 1tb flash drive, , 95% free processor, , less full memory consumption.

i have uipopovercontroller 4 items in it, sized items. there's nothing complicated or multi-threaded or long running in way associated in uipopovercontroller in question.

i've set appear , dismiss animation @ 0, yet when tap on item in list, there seems random indeterminate delay between 0 , .4 seconds in popover disappearing. of course 0 expected, times when it's half second noticeably longer , disconcerting.

any idea may causing that?

code shows popover...

-(ibaction)thelandimpsbuttonpressed:(uibutton *)sender {     irpnamevaluepopover *thepopovercontent = [[irpnamevaluepopover alloc] init];     thepopovercontent.thetablevalues = [self getlandimpschoiceslist];     impslandpopover = [[uipopovercontroller alloc] initwithcontentviewcontroller:thepopovercontent];     thepopovercontent.thepopovercontroller = impslandpopover;     impslandpopover.popovercontentsize = [irpuihelper sizeforpopoverthathastitle:no andlistcontent:thepopovercontent.thetablevalues];     impslandpopover.delegate = self;      [impslandpopover presentpopoverfromrect:self.thelandimpsbutton.bounds inview:self.thelandimpsbutton permittedarrowdirections:uipopoverarrowdirectionany animated:no]; } 

code dismisses popover... btw, there no evaluation time incurred here [self userchoiceisvalid] because returns yes right now.

-(void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath {     _thechosennamevalueitem = [self.thetablevalues objectatindex:indexpath.row];     [self acceptuserchoiceandclose]; }   // contentviewcontroller encapsulated inside uipopoverviewcontroller, , class cannot // close popover contains it, hence need reference popover controller // popover's delegate... 1 created popover, able close it. -(void)acceptuserchoiceandclose {     _theuserchoseavalue = no; // start assuming didn't chose valid value.      if ([self userchoiceisvalid])     {         // set variable indicates user chose value can saved core data, and/or presented on screen.         _theuserchoseavalue = yes;          // close popover.         [_thepopovercontroller dismisspopoveranimated:no];          // notify class presented popover popover has been dismissed.         // still available dismissal method code can retrieve user's choice, , set popover nil.         if (_thepopovercontroller.delegate && [_thepopovercontroller.delegate respondstoselector:@selector(popovercontrollerdiddismisspopover:)])         {             [_thepopovercontroller.delegate popovercontrollerdiddismisspopover:_thepopovercontroller];         }     }     else     {         [self showvalidationfailuremessagetouser];     }  } 

i check out in profiler , see time being spent on.

there's tutorial here.


Comments