how 1 ensure viewwillappear:
, viewdidappear:
(and other view transition methods) called on uipageviewcontroller's
child viewcontrollers
?
in case, view transition methods adequately called on except firstviewcontroller
uipageviewcontroller
opens to. on firstviewcontroller
, viewdidappear:
, viewwillappear:
methods called before uipageviewcontroller's
view transition methods. , 1 starts scrolling, viewwillappear:
, viewdidappear:
methods called 1 expect new view controllers.
here structure: have bossviewcontroller
contains organizerviewcontroller
(a couple different organizers, actually, irrelevant). organizerviewcontroller
contains uipageviewcontroller
, contains series of customviewcontrollers
. code adequately calls child view transition methods per apple (https://developer.apple.com/library/ios/featuredarticles/viewcontrollerpgforiphoneos/implementingacontainerviewcontroller.html) interactions between bossviewcontroller
, organizerviewcontroller
(fully functional, so). problem lies somewhere between organizerviewcontroller
, it's child uipageviewcontroller
, , it's first child custompageviewcontroller
.
i have tried calling beginappearancetransition:
, endappearancetransition: within uipageviewcontroller's viewwillappear:
, viewdidappear:
- resulted in 'unbalanced calls' error log console.
here uipageviewcontroller
set code, of in organizerviewcontroller
:
- (void)configurepvc { nsdictionary *key = @{uipageviewcontrolleroptioninterpagespacingkey : @([uiscreen mainscreen].bounds.size.width * 0.5)}; _pvc = [[avscustompageviewcontroller alloc] initwithtransitionstyle:uipageviewcontrollertransitionstylescroll navigationorientation:uipageviewcontrollernavigationorientationhorizontal options:key]; self.pvc.delegate = self; self.pvc.datasource = self; _pvcarray = [[nsmutablearray alloc] init]; customviewcontroller *daily = (customviewcontroller *)[self viewcontrolleratindex:6]; self.index = 6; [self.pvcarray addobject:daily]; [self.pvc setviewcontrollers:self.pvcarray direction:uipageviewcontrollernavigationdirectionforward animated:yes completion:nil]; [self addchildviewcontroller:self.pvc]; [self.dailycontainerview addsubview:self.pvc.view]; self.pvc.view.frame = self.dailycontainerview.bounds; [self.pvc didmovetoparentviewcontroller:self]; } - (uiviewcontroller *)pageviewcontroller:(uipageviewcontroller *)pageviewcontroller viewcontrollerbeforeviewcontroller:(uiviewcontroller *)viewcontroller { nsuinteger index = [(customviewcontroller *)viewcontroller index]; if (index == 0) { return nil; } index--; return [self viewcontrolleratindex:index]; } - (uiviewcontroller *)pageviewcontroller:(uipageviewcontroller *)pageviewcontroller viewcontrollerafterviewcontroller:(uiviewcontroller *)viewcontroller { nsuinteger index = [(customviewcontroller *)viewcontroller index]; if (index == 6) { return nil; } index++; return [self viewcontrolleratindex:index]; } - (uiviewcontroller *)viewcontrolleratindex:(nsuinteger)index { customviewcontroller *viewcontroller = [[customviewcontroller alloc] init]; viewcontroller.index = index; return viewcontroller; }
Comments
Post a Comment