UIPageViewController viewControllers总是返回一个控制器

时间:2017-08-29 14:46:35

标签: ios swift uipageviewcontroller

我在UIPageViewController内有两个视图控制器。我需要让UIPageViewController内的所有视图控制器调用它们内部的方法,但它总是只返回一个页面(第一页或第二页)。

为方便起见,代码如下:

if let viewControllers: [UIViewController] = self.viewControllers {

   print(viewControllers)

   for controller in viewControllers {
       if let firstController: FirstViewController = controller as? FirstViewController {
          //Call something
       }
       if let secondController: SecondViewController = controller as? SecondViewController {
           //Call something
        }
    }
}

实际上,它只返回页面控制器内的可见视图控制器。

1 个答案:

答案 0 :(得分:1)

这是预期的行为。

在简单的UIPageViewController中,此数组仅返回当前可见的视图控制器,这通常只是一个视图控制器。

请注意UIPageViewController 重度缓存重用控制器,就像UITableViewController一样。您可能希望以另一种方式反映变化。