iphone - UIProgressView Not DIsplaying -
i have uiprogressview want run on glkviewcontroller while rest of code being loaded ios. have placed uiprogressview 'viewdidload' method. uiprogressview not display until of code has been loaded viewdidload method. how can uiprogressview display viewdidload method called , end when viewdidload method finished?
- (void)viewdidload { [super viewdidload]; // progress bar [threadprogressview setprogress: 0.0]; [self performselectoronmainthread:@selector(updateprogressbar) withobject:nil waituntildone:no]; // disbale iphone locking [[uiapplication sharedapplication] setidletimerdisabled: yes]; // set context use open gl es self.context = [[eaglcontext alloc] initwithapi:keaglrenderingapiopengles2]; if (!self.context) { nslog(@"failed create es context"); } // create view display open gl es content glkview *view = (glkview *)self.view; view.context = self.context; view.drawabledepthformat = glkviewdrawabledepthformat24; /******** default settings **********/ m_kf = 0; // current keyframe id. m_avpos = glkvector3make(0.0f, 0.0f, -35.0f); // put avata. m_campos = glkvector3make(0.0f, 10.0f, -35.0f); // camera orbits point. m_camdist = 30.0f; // distance of camera orbit point. /******** set open gl ***********/ [self setupgl]; /********* touch implementation *********/ // pinch recongizer detects pinches , used zoom in/out uipinchgesturerecognizer *pinchrecognizer = [[uipinchgesturerecognizer alloc] initwithtarget:self action:@selector(pinchdetected:)]; [self.view addgesturerecognizer:pinchrecognizer]; // pan recognizer, used rotate around x , y axis uipangesturerecognizer *panrecognizer = [[uipangesturerecognizer alloc] initwithtarget:self action:@selector(pandetected:)]; [self.view addgesturerecognizer:panrecognizer]; /********* end touch implementation *********/ }
how can uiprogressview display viewdidload method called , end when viewdidload method finished?
when viewdidload
called view not yet on screen. after viewdidload
see viewwillappear
viewdidappear
being called.
and if have long running viewdidload
block main thread, progress bar won't updated.
when :
[self performselectoronmainthread:@selector(updateprogressbar) withobject:nil waituntildone:no];
since on main thread specifying waituntildone
queue request , process later, after viewdidload
have finish.
to want do, need more asynchronous code.
Comments
Post a Comment