我在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
}
}
}
实际上,它只返回页面控制器内的可见视图控制器。
答案 0 :(得分:1)
这是预期的行为。
在简单的UIPageViewController
中,此数组仅返回当前可见的视图控制器,这通常只是一个视图控制器。
请注意UIPageViewController
重度缓存和重用控制器,就像UITableViewController
一样。您可能希望以另一种方式反映变化。