30行の単一ファイルでUIPageView
【決定版】UIPageViewControllerの使い方(Swift) - Qiita
で勉強して、作ってみました。
PageViewController.swiftを作って、
UIPageViewControllerのカスタムビューにセット。
そのまま2カ所編集します。
次の「Use Storyboad ID」を忘れずに。「second」「third」も同様。
import UIKit
class PageViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {
let pageList = ["first", "second", "third"]
override func viewDidLoad() {
super.viewDidLoad()
dataSource = self // 忘れがち
setViewControllers([storyboardId("first") as! UIViewController], direction: .Forward, animated: true, completion: nil)
}
// 便利
func storyboardId(strID: String) -> AnyObject! {
return (storyboard?.instantiateViewControllerWithIdentifier(strID))
}
// 1ページ進む
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
let index = pageList.indexOf(viewController.restorationIdentifier!)
if index < (pageList.count - 1) {
return (storyboardId(pageList[index! + 1]) as! UIViewController)
} else {
return nil
}
}
// 1ページ戻る
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
let index = pageList.indexOf(viewController.restorationIdentifier!)
if 0 < index {
return (storyboardId(pageList[index! - 1]) as! UIViewController)
} else {
return nil
}
}
// Page Controlを表示する(以下のコードを書いただけで自動で表示されます)
func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {
return pageList.count
}
func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
return 0
}
}
しばしば文句を言いたくなるXcodeですが、いいところもありますね😅
追記:【Swift】UIPageViewControllerの使い方。PageControlの色を変更する。 | はじはじアプリ体験記を見たら良いコードだったので真似させていただきました。
Author And Source
この問題について(30行の単一ファイルでUIPageView), 我々は、より多くの情報をここで見つけました https://qiita.com/Feel-Physics/items/3b1756b92c460415f0ea著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .