Ios/swift/UIPageViewController
提供: 初心者エンジニアの簡易メモ
UIPageViewControllerとは
横スワイプによるページ送り
サンプル
- 初期のViewControllerとは別に2つUIViewControllerをstoryboardに追加する
- それぞれクラス名をViewControllerとSecondViewControllerとThirdControllerとする
- それぞれのStroyboardIdをFirstViewControllerIdとSecondViewControllerIdとThirdViewControllerIdとする
- UIPageViewControllerをstoryboardに追加する
- 追加したUIPageViewControllerのクラス名をPageViewControllerとする
- PageViewControllerを初期起動するように"Is InItial View Controller"をonにする
import UIKit class PageViewController: UIPageViewController, UIPageViewControllerDataSource { override func viewDidLoad() { super.viewDidLoad() self.setViewControllers([getFirstViewController()], direction: .Forward, animated: true, completion: nil) self.dataSource = self } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } private func getFirstViewController() -> UIViewController { return storyboard!.instantiateViewControllerWithIdentifier("FirstViewControllerId") } private func getSecondViewController() -> UIViewController { return storyboard!.instantiateViewControllerWithIdentifier("SecondViewControllerId") } private func getThirdViewController() -> UIViewController { return storyboard!.instantiateViewControllerWithIdentifier("ThirdViewControllerId") } // 前へ func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { if viewController.isKindOfClass(ThirdViewController) { return getSecondViewController() } else if viewController.isKindOfClass(SecondViewController) { return getFirstViewController() } else { return nil } } // 次へ func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? { if viewController.isKindOfClass(ViewController) { return getSecondViewController() } else if viewController.isKindOfClass(SecondViewController) { return getThirdViewController() } else { return nil } } }
参考:http://qiita.com/Takeshi_Akutsu/items/dbf54df8e8a50e8ed5be
ページ送りのアニメーションスタイルを"紙めくり"から"スクロール"に変更する方法
storyboardのPageViewControllerのプロパティのtransition_styleを"Page Curl"から"Scroll"に