facebook twitter hatena line email

「Ios/swift/UIPageViewController」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==UIPageViewControllerとは== 横スワイプによるページ送り ==サンプル== #初期のViewControllerとは別に2つUIViewControllerをstoryboardに追加...」)
(相違点なし)

2016年6月27日 (月) 06:51時点における版

UIPageViewControllerとは

横スワイプによるページ送り

サンプル

  1. 初期のViewControllerとは別に2つUIViewControllerをstoryboardに追加する
  2. それぞれクラス名をViewControllerとSecondViewControllerとThirdControllerとする
  3. それぞれのStroyboardIdをFirstViewControllerとSecondViewControllerIdとThirdViewControllerIdとする
  4. UIPageViewControllerをstoryboardに追加する
  5. 追加したUIPageViewControllerのクラス名をPageViewControllerとする
  6. 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 getSecondViewController() -> UIViewController {
       return storyboard!.instantiateViewControllerWithIdentifier("SecondViewControllerId")
   }
   private func getFirstViewController() -> UIViewController {
       return storyboard!.instantiateViewControllerWithIdentifier("FirstViewControllerId")
   }
   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
       }
   }
}