ios - UIPageViewController second and third page flickers to white -
i have pageviewcontroller, when swipe second page, shows right controller split second , screen goes white, if swipe again show should be. has 4 pages instead of intended 3 pages.
here video demonstrate problem: https://streamable.com/i1inq
the indexing following:
profilecontroller.index = 0 discovercontroller.index = 1 matchcontroller.index = 2 func pageviewcontroller(_ pageviewcontroller: uipageviewcontroller, viewcontrollerafter viewcontroller: uiviewcontroller) -> uiviewcontroller? { if index == 0 { index = discovercontroller.index return discovercontroller } else if index == 1 { index = matchcontroller.index return matchcontroller } return nil } edit: should mention initial controller profilecontroller, , index starts @ 0 when app run.
updated
you can modify code customized viewcontroller index property:
func pageviewcontroller(_ pageviewcontroller: uipageviewcontroller, viewcontrollerafter viewcontroller: uiviewcontroller) -> uiviewcontroller? { let index = (viewcontroller as? mycustomvcwithindexforpageviewcontroller).index if index == 0 { index = discovercontroller.index return discovercontroller } else if index == 1 { index = matchcontroller.index return matchcontroller } return nil } original
you should not cache parameter related pageviewcontroller. uipageviewcontroller preload page have better performance.
ex:
you have 3 pages display.
you displaying first page initial.
then scroll second view. viewcontrollerafter called viewcontroller of first viewcontroller requesting second viewcontroller.
and viewcontrollerafter called again viewcontroller of second viewcontrollerfor requesting third viewcontroller (preload).
in case if cache index, lead unpredictable results.
Comments
Post a Comment