ios - In UIPageViewController, when "pageViewController:viewControllerBeforeViewController"get called? -


i try display photos in uipageviewcontroller. firstly display photos in collection view , tap 1 photo enter page view. when i'm in page view, however, if scroll photo(to right or left), find both pageviewcontroller:viewcontrollerbeforeviewcontroller , pageviewcontroller:viewcontrollerafterviewcontroller method called(by calling nslog found it).

should 1 of 2 methods called once? quite confused , have big trouble updating photonumber displaying photo want.

here page view code:

#import "photopageviewcontroller.h" #import "photoviewcontroller.h"  @interface photopageviewcontroller () @property (nonatomic)nsinteger previousphotonumber; @end  @implementation photopageviewcontroller  - (void)viewdidload {     [super viewdidload];      self.datasource = self;     self.delegate = self;      self.numberofphotosincurrentalbum = [photo numberofphotosinalbumwithname:self.albumname inmanagedobjectcontext:self.context];     photoviewcontroller *currentphotoviewcontroller = [self.storyboard instantiateviewcontrollerwithidentifier:@"photocontentviewcontroller"];     currentphotoviewcontroller.photonumber = self.currentphotonumber;     currentphotoviewcontroller.albumname = self.albumname;     currentphotoviewcontroller.context = self.context;      currentphotoviewcontroller.ppvc = self;     currentphotoviewcontroller.numberofphotosincurrentalbum =self.numberofphotosincurrentalbum;      [self setviewcontrollers:@[currentphotoviewcontroller]                    direction:uipageviewcontrollernavigationdirectionforward                     animated:no                   completion:null]; }    #pragma mark - page view controller datasource  - (uiviewcontroller *)pageviewcontroller:(uipageviewcontroller *)pageviewcontroller viewcontrollerbeforeviewcontroller:(uiviewcontroller *)viewcontroller {     if (self.currentphotonumber > 0) {         nslog(@"in before section: current photo %lu", self.currentphotonumber);          photoviewcontroller *photobeforecurrentphoto = [self.storyboard instantiateviewcontrollerwithidentifier:@"photocontentviewcontroller"];         photobeforecurrentphoto.photonumber = self.currentphotonumber - 1;         photobeforecurrentphoto.albumname = self.albumname;         photobeforecurrentphoto.context = self.context;         photobeforecurrentphoto.ppvc = self;          self.previousphotonumber = self.currentphotonumber;         self.currentphotonumber--;          return photobeforecurrentphoto;     }     return nil; }  - (uiviewcontroller *)pageviewcontroller:(uipageviewcontroller *)pageviewcontroller viewcontrollerafterviewcontroller:(uiviewcontroller *)viewcontroller {     if (self.currentphotonumber < self.numberofphotosincurrentalbum - 1) {         nslog(@"in after section: current photo %lu", self.currentphotonumber);         photoviewcontroller *photoaftercurrentphoto = [self.storyboard instantiateviewcontrollerwithidentifier:@"photocontentviewcontroller"];         photoaftercurrentphoto.photonumber = self.currentphotonumber + 1;         photoaftercurrentphoto.albumname = self.albumname;         photoaftercurrentphoto.context = self.context;         photoaftercurrentphoto.ppvc = self;          self.previousphotonumber = self.currentphotonumber;         self.currentphotonumber++;          return photoaftercurrentphoto;     }     return nil; } 

photoviewcontroller view controller display photo.

can give me advice usage of uipageviewcontroller?

thanks in advance!

uipageviewcontroller uses these bellow method getting , front viewcontroller.

- (uiviewcontroller *)pageviewcontroller:(uipageviewcontroller *)pageviewcontroller viewcontrollerbeforeviewcontroller:(uiviewcontroller *)viewcontroller; - (uiviewcontroller *)pageviewcontroller:(uipageviewcontroller *)pageviewcontroller viewcontrollerafterviewcontroller:(uiviewcontroller *)viewcontroller; 

though weird yes known issue. every time calls before , after method vc. there no next vc returns nil , if there no previous vc datasourcedelegate return nil, otherwise return index of vc.

in uipageviewcontrollerdelegate, there function named :

- (void)pageviewcontroller:(uipageviewcontroller *)pageviewcontroller willtransitiontoviewcontrollers:(nsarray *)pendingviewcontrollers; 

look @ might current or next/previous viewcontroller pendingviewcontrollers array.

hope helps.. :)


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -