2017-08-29 74 views
-1

我有一個UIPageViewController內的兩個視圖控制器。我需要讓UIPageViewController中的所有視圖控制器調用其中的方法,但它總是隻返回一個頁面(第一頁或第二頁)。UIPageViewController viewControllers總是返回一個控制器

該代碼是下面爲方便起見:

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

「我有UIPageViewController裏面的兩個視圖控制器」不,你不知道。 'print(self.viewControllers.count)'會揭示事情的真相。 – matt

回答

1

這是打算的行爲。

在一個簡單的UIPageViewController中,此數組將僅返回當前可見的視圖控制器(s),通常只是一個視圖控制器。

記住UIPageViewController大量緩存重用控制器,就像一個UITableViewController會。您可能想要以另一種方式反映更改。

+0

你把它切開了,傻了我;如果同時顯示多個控制器,它將顯示多個控制器。 – sinner

相關問題