0
У меня есть контроллер просмотра страницы с массивом, ссылающимся на раскадровку ID контроллеров, которые я хочу показать внутри. Как я могу передавать данные от корневого контроллера до контроллера?PageViewController передает данные дочернему контроллеру
я пытался сделать, чтобы это нравится, но он не
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
if let index = pages.indexOf(viewController.restorationIdentifier!) {
if index < pages.count - 1 {
return viewcontrollerAtIndex(index + 1)
}
}
var objectController = viewcontrollerAtIndex(0) as! HF2Object
objectController.object = object
objectController.serverID = serverID
objectController.imageURLsArray = imageURLsArray
return nil
}
код Всего контроллер
import UIKit
class HF2PageViewController: UIViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {
var pages = ["object", "reviews"]
var pageViewController = UIPageViewController()
var object:String?
var serverID:String?
var imageURLsArray = [String]()
override func viewDidLoad() {
super.viewDidLoad()
pageViewController = UIPageViewController(transitionStyle: .Scroll, navigationOrientation: .Horizontal, options: nil)
pageViewController.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y + 64, self.view.frame.width, self.view.frame.height - 64)
addChildViewController(pageViewController)
self.view.addSubview(pageViewController.view)
pageViewController.delegate = self
pageViewController.dataSource = self
pageViewController.setViewControllers([viewcontrollerAtIndex(0)], direction: .Forward, animated: true, completion: nil)
pageViewController.didMoveToParentViewController(self)
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
if let index = pages.indexOf(viewController.restorationIdentifier!) {
if index < pages.count - 1 {
return viewcontrollerAtIndex(index + 1)
}
}
var objectController = viewcontrollerAtIndex(0) as! HF2Object
objectController.object = object
objectController.serverID = serverID
objectController.imageURLsArray = imageURLsArray
return nil
}
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if let index = pages.indexOf(viewController.restorationIdentifier!) {
if index > 0 {
return viewcontrollerAtIndex(index - 1)
}
}
return nil
}
func viewcontrollerAtIndex(index: Int) -> UIViewController {
let vc = storyboard?.instantiateViewControllerWithIdentifier(pages[index])
return vc!
}
}
уже пробовал, как это https://s.mail.ru/BS9X3Be8HV4D/img-2016-02-24-19-56-31.png, но HF2Object ничего не получает –
С кодом есть некоторые ошибки , вы выделяете другой ViewController внутри if, но возвращаете ранее объявленный. Попробуйте использовать эту версию http://pastebin.com/X07xMbCB. Или вы можете добавить «return vc!» внутри оператора if – lorenzoliveto