2017-02-15 35 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