facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==UIPageViewControllerとは== 横スワイプによるページ送り ==サンプル== #初期のViewControllerとは別に2つUIViewControllerをstoryboardに追加...」)
 
 
(同じ利用者による、間の6版が非表示)
行5: 行5:
 
#初期のViewControllerとは別に2つUIViewControllerをstoryboardに追加する
 
#初期のViewControllerとは別に2つUIViewControllerをstoryboardに追加する
 
#それぞれクラス名をViewControllerとSecondViewControllerとThirdControllerとする
 
#それぞれクラス名をViewControllerとSecondViewControllerとThirdControllerとする
#それぞれのStroyboardIdをFirstViewControllerとSecondViewControllerIdとThirdViewControllerIdとする
+
#それぞれのStroyboardIdをFirstViewControllerIdとSecondViewControllerIdとThirdViewControllerIdとする
 
#UIPageViewControllerをstoryboardに追加する
 
#UIPageViewControllerをstoryboardに追加する
 
#追加したUIPageViewControllerのクラス名をPageViewControllerとする
 
#追加したUIPageViewControllerのクラス名をPageViewControllerとする
行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) {
行49: 行49:
 
     }
 
     }
 
  }
 
  }
 +
 +
参考: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

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