uipageviewcontroller - UIPageController - Detect Current Page If swipe Cancelled (SWIFT 3.*) -


i have uipagecontroller correctly detects previous or next pageindex upon scroll

the problem have of need solution is...

example:- user scrolls left or right decides cancel during swipe... remains on current page.

the pageindex changes pending page(next page) , not actual current page..

my code achieve above statement :--

func pageviewcontroller(_ pageviewcontroller: uipageviewcontroller, willtransitionto pendingviewcontrollers: [uiviewcontroller]) {      if let itemcontroller = pendingviewcontrollers[0] as? pagecontentviewcontroller {          nextindex = itemcontroller.pageindex          print("page index = \(nextindex)")     } }  func pageviewcontroller(_ pageviewcontroller: uipageviewcontroller, didfinishanimating finished: bool, previousviewcontrollers: [uiviewcontroller], transitioncompleted completed: bool) {         currentindex = nextindex         print("current page = \(currentindex)")     }   func pageviewcontroller(_ pageviewcontroller: uipageviewcontroller, viewcontrollerafter viewcontroller: uiviewcontroller) -> uiviewcontroller? {        let itemcontroller = viewcontroller as! pagecontentviewcontroller      if itemcontroller.pageindex < numberofpages {         return getitemcontroller(itemcontroller.pageindex+1)     }      return nil  }    func pageviewcontroller(_ pageviewcontroller: uipageviewcontroller, viewcontrollerbefore viewcontroller: uiviewcontroller) -> uiviewcontroller? {      let itemcontroller = viewcontroller as! pagecontentviewcontroller      if itemcontroller.pageindex > 0 {          return getitemcontroller(itemcontroller.pageindex-1)     }      return nil }  func getitemcontroller(_ itemindex: int) -> pagecontentviewcontroller? {      if itemindex < numberofpages {         let pageitemcontroller = self.storyboard!.instantiateviewcontroller(withidentifier: "page1") as! pagecontentviewcontroller         pageitemcontroller.pageindex = itemindex          return pageitemcontroller     }      return nil } 

i want page number before page displays can display particular objects etc.

viewcontrollerafter , viewcontrollerbefore doesn't seem called every single time cannot rely on delegate method

i not know how missed in didfinishanimating method completion block

thus following code fixed issue

func pageviewcontroller(_ pageviewcontroller: uipageviewcontroller, didfinishanimating finished: bool, previousviewcontrollers: [uiviewcontroller], transitioncompleted completed: bool) {      if completed     {         currentindex = nextindex      }      print("current page = \(currentindex)") } 

Comments

Popular posts from this blog

php - How to add and update images or image url in Volusion using Volusion API -

javascript - IE9 error '$'is not defined -