私はページコントローラを学び、ページベースのアプリケーションテンプレートを使って空のアプリケーションを作成しました。デフォルトでは、左から右にスクロールできる12ヶ月のページが作成されます。Xcodeの "ページベースアプリケーション"プロジェクトテンプレートにPageControllerがあるのはなぜですか?
ストーリーボードには、ページビューコントローラー付きのページビューコントローラーシーンがあります。ただし、コードには、このコントローラをルートコントローラでプログラムで作成するコマンドがあります。つまり
var pageViewController: UIPageViewController?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// Configure the page view controller and add it as a child view controller.
self.pageViewController = UIPageViewController(transitionStyle: .pageCurl, navigationOrientation: .horizontal, options: nil)
self.pageViewController!.delegate = self
let startingViewController: DataViewController = self.modelController.viewControllerAtIndex(0, storyboard: self.storyboard!)!
let viewControllers = [startingViewController]
self.pageViewController!.setViewControllers(viewControllers, direction: .forward, animated: false, completion: {done in })
self.pageViewController!.dataSource = self.modelController
self.addChildViewController(self.pageViewController!)
self.view.addSubview(self.pageViewController!.view)
// Set the page view controller's bounds using an inset rect so that self's view is visible around the edges of the pages.
var pageViewRect = self.view.bounds
if UIDevice.current.userInterfaceIdiom == .pad {
pageViewRect = pageViewRect.insetBy(dx: 40.0, dy: 40.0)
}
self.pageViewController!.view.frame = pageViewRect
self.pageViewController!.didMove(toParentViewController: self)
}
実際、ストーリーボードからページビューコントローラーを削除すると、アプリは以前と同じように機能します。
私は、これが使用されていないと思われる理由をストーリーボードに記載する理由を理解しようとしています。また、ストーリーボードを使用するのではなく、プログラムでページビューコントローラーを作成するのは良い理由ですか?
あなたは正しいです。私の間違い。私はストーリーボードに自分自身を追加しておく必要があります。私は今後尋ねる前にもっと慎重にチェックするつもりです:) – Julian7