facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
 
(同じ利用者による、間の1版が非表示)
行18: 行18:
 
     override func didReceiveMemoryWarning() {
 
     override func didReceiveMemoryWarning() {
 
         super.didReceiveMemoryWarning()
 
         super.didReceiveMemoryWarning()
    }
 
    private func getSecondViewController() -> UIViewController {
 
        return storyboard!.instantiateViewControllerWithIdentifier("SecondViewControllerId")
 
 
     }
 
     }
 
     private func getFirstViewController() -> UIViewController {
 
     private func getFirstViewController() -> UIViewController {
 
         return storyboard!.instantiateViewControllerWithIdentifier("FirstViewControllerId")
 
         return storyboard!.instantiateViewControllerWithIdentifier("FirstViewControllerId")
 +
    }
 +
    private func getSecondViewController() -> UIViewController {
 +
        return storyboard!.instantiateViewControllerWithIdentifier("SecondViewControllerId")
 
     }
 
     }
 
     private func getThirdViewController() -> UIViewController {
 
     private func getThirdViewController() -> UIViewController {
 
         return storyboard!.instantiateViewControllerWithIdentifier("ThirdViewControllerId")
 
         return storyboard!.instantiateViewControllerWithIdentifier("ThirdViewControllerId")
 
     }
 
     }
     // 次へ
+
     // 前へ
 
     func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
 
     func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
 
         if viewController.isKindOfClass(ThirdViewController) {
 
         if viewController.isKindOfClass(ThirdViewController) {
行38: 行38:
 
         }
 
         }
 
     }
 
     }
     // 前へ
+
     // 次へ
 
     func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
 
     func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
 
         if viewController.isKindOfClass(ViewController) {
 
         if viewController.isKindOfClass(ViewController) {

2016年6月28日 (火) 00:14時点における最新版

UIPageViewControllerとは

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

サンプル

  1. 初期のViewControllerとは別に2つUIViewControllerをstoryboardに追加する
  2. それぞれクラス名をViewControllerとSecondViewControllerとThirdControllerとする
  3. それぞれのStroyboardIdをFirstViewControllerIdと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 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"に

参考:http://stackoverflow.com/questions/24577403/programmatically-set-uipageviewcontroller-transition-style-to-scroll