Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIPageViewController视图控制器始终返回单个控制器_Ios_Swift_Uipageviewcontroller - Fatal编程技术网

Ios UIPageViewController视图控制器始终返回单个控制器

Ios UIPageViewController视图控制器始终返回单个控制器,ios,swift,uipageviewcontroller,Ios,Swift,Uipageviewcontroller,我在一个UIPageViewController中有两个视图控制器。我需要让UIPageViewController中的所有视图控制器调用其中的方法,但它总是只返回一个页面(第一页或第二页) 为方便起见,代码如下: if let viewControllers: [UIViewController] = self.viewControllers { print(viewControllers) for controller in viewControllers {

我在一个
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
        }
    }
}

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

这是预期的行为

在简单的
UIPageViewController
中,此数组将仅返回当前可见的视图控制器,该视图控制器通常仅为一个视图控制器


请记住,
UIPageViewController
会像
UITableViewController
一样大量缓存和重用控制器。您可能希望以另一种方式反映更改。

“UIPageViewController中有两个视图控制器”不,您没有<代码>打印(self.viewControllers.count)将揭示事情的真相。你把它切掉了,愚蠢的我;如果一次可以看到多个控制器,它将显示多个控制器。