2017-02-15 2 views
1

В настоящее время я пытаюсь создать демонстрационное приложение в 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.

Второе:

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

и подключить его к свойству.

Вы делаете это для всех трех UIViewControllers.

+0

Спасибо. Я смог сделать это в коде. Я пытался посмотреть, смогу ли я использовать раскадровку. Похоже, это был не стартер. – MikeMayer67

+0

@ MikeMayer67 Рад помочь, Это способ пойти и сделать вещи намного чище и легко управляемыми. –

Смежные вопросы