2017-02-15 37 views
1

我目前正在嘗試使用swift在Xcode 8.2.1中構建演示應用程序,以瞭解如何使用UIPageViewController。我在UIPageViewController的子類中添加了三個插座,我打算連接到頁面視圖控制器將控制的三個視圖。無法將IBOutlet連接到UIViewController(或其子類)

class MyPageViewController: UIPageViewController, UIPageViewControllerDataSource 
{ 
    @IBOutlet weak var redController : MyColorViewController! 
    @IBOutlet weak var greenController : MyColorViewController! 
    @IBOutlet weak var blueController : MyColorViewController! 
    //... 
} 

在我的主要故事板中,我創建了一個MyPageViewController實例和三個MyColorViewController實例。

但是,對於我的生活,我無法弄清楚如何讓故事板將上面的三個插座連接到任何顏色視圖控制器實例。

controller instances

我已經試過兩個Ctrl拖動從頁面視圖控制器本身每種顏色視圖控制器,並從頁面視圖控制器的網點的檢查。什麼都沒有

attempt to connect page controller to blue controller

建議?

+1

無法將'UIViewControllers'作爲'@ IBOutlets'連接。你在做什麼?故事板中的每個視圖控制器都是獨立的項目。 IBOutlets只能是視圖控制器「場景」內部的東西。 – Fogmeister

+0

你應該從'blueController'刨到藍色視圖*控制器*,而不是藍色*視圖* –

+1

@ MikeMayer97這裏是完全相同的 - :https://spin.atomicobject.com/2015/12/23/ swift-uipageviewcontroller-tutorial/ –

回答

1

你應該通過代碼來做到這一點。而不是IBOutlets。

首先:爲每個UIViewControllers設置一個storyboard ID。

二:

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let viewController = storyboard.instantiateViewController(withIdentifier :"blueViewController") as! UIViewController 

並將其連接到一個屬性。

您可以爲所有三個UIViewControllers執行此操作。

+0

謝謝。我能夠在代碼中做到這一點。我試圖看看是否可以使用故事板。看起來這是一個不起眼的人。 – MikeMayer67

+0

@ MikeMayer67很高興爲您提供幫助,這是一條出路,讓事情變得更簡潔,更容易管理。 – 2017-02-15 14:44:09