2016-10-11 5 views
0

Это кажется мне основным вопросом, но я ищу дни и не смог найти ответ.Swift 3 - реализация UIPageViewController возвращает пустой (пустой) вид

У меня есть пустой контроллер View, в котором я пытаюсь показать UIPageViewController, заполненный контентом из другого VC. Я пробовал много способов сделать это, но не добился успеха. Я следую этому руководству: https://www.veasoftware.com/posts/uipageviewcontroller-in-swift-xcode-62-ios-82-tutorial, и я старался делать все почти так же, как он объясняет. Может ли кто-нибудь указать на то, что может быть неправильно?

К слову, у моих классов правильно установлен набор расписаний, и каждый VC подключен к соответствующему классу.

Вот мой исходный код ОК:

override func viewDidLoad() { 
    super.viewDidLoad() 

pageViewController = self.storyboard?.instantiateViewController(withIdentifier: "PageViewController") as? UIPageViewController 

pageViewController!.dataSource = self 

let startVC = self.viewControllerAt(index: 0) 
let viewControllers = NSArray(object: startVC) 

pageViewController!.setViewControllers(viewControllers as! [ContentViewController], direction: .forward, animated: false, completion: nil) 

self.pageViewController!.view.frame = self.view.bounds 
addChildViewController(pageViewController!) 
self.view.addSubview((pageViewController!.view)!) 
pageViewController?.didMove(toParentViewController: self) 

} 

    let cVC: ContentViewController = self.storyboard?.instantiateViewController(withIdentifier: "ContentViewController") as! ContentViewController 
    cVC.title = "Title \(index)" 
    cVC.nAuthor = "Author" 
    cVC.nCategory = "Sports" 
    cVC.nBody = "Lorem ipsum...." 
    cVC.pageIndex = index 
    return cVC 
} 

Это мой класс содержания:

override func viewDidLoad() { 
    super.viewDidLoad() 

    newsTitle.text = nTitle 
    newsAuthor.text = nAuthor 
    newsCategory.text = nCategory 
    newsBody.text = nBody 
} 

ответ

0

Для будущих ссылок на человек с той же проблемой. После трудного расследования я увидел, что в быстром (по крайней мере 3) я должен объявить раскадровку, пока не позвоню! Может быть, любительская ошибка.

Так что прежде:

let cVC: ContentViewController = self.storyboard?.instantiateViewController(withIdentifier: "ContentViewController") as! ContentViewController 

Я должен был включать в себя:

let storyboard = UIStoryboard(name: "Main", bundle: nil)