Avatar
Avatar
Kishikawa Katsumi
コードを見たら一発でわかると思うので、書いてるコードをどこでエラーが起こってるのかがわかるように載せてもらえますか?
皆様、返信ありがとうございます。 PageViewControllerのファイルはこのようになっています。
3:14 PM
import UIKit class PageViewController: UIPageViewController { private var controllers: [UIViewController] = [] var PageTest: String! = "" override func viewDidLoad() { super.viewDidLoad() initPageViewController() // Do any additional setup after loading the view. } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) initPageViewController() } private func initPageViewController() { //VCをインスタンス化 let firstVC = storyboard!.instantiateViewController(withIdentifier: "top1") as! FirstViewController let secondVC = storyboard!.instantiateViewController(withIdentifier: "top2")as! SecondViewController //配列のVCのインスタンスを入れる self.controllers = [ firstVC, secondVC ] setViewControllers([self.controllers[0]], direction: .forward, animated: true, completion: nil) firstVC.FirstTestLabel.text = PageTest secondVC.SecondTestLabel.text = PageTest //エラー,ViewControllerがSetViewControllersでセットされていないのが原因? self.dataSource = self } } extension PageViewController: UIPageViewControllerDataSource { //左スワイプで前の画面に戻る処理 func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController?{ if let pageIndex = self.controllers.firstIndex(of: viewController), pageIndex - 1 >= 0 { return self.controllers[pageIndex - 1] } return nil } //右スワイプで次の画面にいく処理 func pageViewController(_ pageViewControlller: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController?{ if let pageIndex = self.controllers.firstIndex(of: viewController), pageIndex + 1 < self.controllers.count{ return self.controllers[pageIndex + 1] } return nil } } (edited)