ios - UIPageViewController transition not working correctly -
i have uipageviewcontroller page curl (not transition type matters neither works), second page doesn't display until animation finished. code use work, no longer, ideas great
the code follows:
- (void)viewdidload { self.pageviewcontroller = [self.storyboard instantiateviewcontrollerwithidentifier:@"pageviewcontroller"]; self.pageviewcontroller.datasource = self; self.pageviewcontroller.delegate = self; // other code deleted, easy reading } - (psalmviewcontroller *)viewcontrolleratindex:(nsuinteger)index { if (([self.mdelegate.mpsalms count] == 0) || (index >= [self.mdelegate.mpsalms count])) return nil; // create new view controller , pass suitable data. psalmviewcontroller *controller = [self.storyboard instantiateviewcontrollerwithidentifier:@"psalmviewcontroller"]; psalmdata *data = [self.mdelegate.mpsalms objectatindex:index]; [controller setupview:index psalm:data]; self.mnextpsalm = controller; return controller; } #pragma mark - page view controller data source - (uiviewcontroller *)pageviewcontroller:(uipageviewcontroller *)pageviewcontroller viewcontrollerbeforeviewcontroller:(uiviewcontroller *)viewcontroller { if (self.mnextindex == 0 || self.mnextindex == nsnotfound) return nil; self.mnextindex = self.mpageindex - 1; self.manimating = true; nslog(@"prev %lud", (unsigned long)self.mnextindex); return [self viewcontrolleratindex:self.mnextindex]; } - (uiviewcontroller *)pageviewcontroller:(uipageviewcontroller *)pageviewcontroller viewcontrollerafterviewcontroller:(uiviewcontroller *)viewcontroller { if (self.mnextindex == nsnotfound) return nil; if (self.mnextindex + 1 == [self.mdelegate.mpsalms count]) return nil; self.mnextindex = self.mpageindex + 1; self.manimating = true; nslog(@"next %lu", (unsigned long)self.mnextindex); return [self viewcontrolleratindex:self.mnextindex]; } - (nsinteger)presentationcountforpageviewcontroller:(uipageviewcontroller *)pageviewcontroller { return [self.mdelegate.mpsalms count]; } - (nsinteger)presentationindexforpageviewcontroller:(uipageviewcontroller *)pageviewcontroller { return 0; } - (void)pageviewcontroller:(uipageviewcontroller *)pageviewcontroller didfinishanimating:(bool)finished previousviewcontrollers:(nsarray<uiviewcontroller *> *)previousviewcontrollers transitioncompleted:(bool)completed { if (completed) { self.mpageindex = self.mnextindex; [self setcurrentpsalm:self.mnextpsalm]; } else if (finished) { self.mnextindex = self.mpageindex; } if (completed || finished) self.manimating = false; nslog(@"c %d f %d", completed, finished); } again appreciated, have no idea causing problem.

Comments
Post a Comment