Elh*_*oej 8 ios uipageviewcontroller swift
我有一个pageviewcontroller
,但当我滑到第二页时,它显示正确的控制器一瞬间,然后屏幕变白,如果我然后再次滑动它将显示应该是.它还有4页而不是我想要的3页.
这是一个演示此问题的视频:https://streamable.com/i1inq
索引如下:
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
}
Run Code Online (Sandbox Code Playgroud)
编辑:我还应该提到初始控制器是profileController,因此当应用程序运行时索引从0开始.
更新
您只需使用index
属性修改代码自定义viewcontroller即可:
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
}
Run Code Online (Sandbox Code Playgroud)
原版的
您不应该缓存与pageviewcontroller相关的参数.
UIPageViewController
有时preload
你的页面有更好的表现.
例如:
您有3页要显示.
您现在显示第一页首页.
然后滚动到第二个视图.viewControllerAfter
调用viewController
第一个viewcontroller来请求第二个viewcontroller.
并viewControllerAfter
再次调用viewController
第二个viewcontroller来请求第三个viewcontroller(预加载).
在这种情况下,如果缓存索引,将导致不可预测的结果.
归档时间: |
|
查看次数: |
549 次 |
最近记录: |