私はPageViewController
を使って、異なるView Controllerを切り替えることができました。どのページが表示されているかを示したいと思います。 pageControl
を追加し、次のコードを付けました。現在のページを表示するUIPageControl
pageControl.currentPageIndicatorTintColor = UIColor.blueColor()
pageControl.pageIndicatorTintColor = UIColor.lightGrayColor()
pageControl.numberOfPages = pages.count
完全なコード:
import UIKit
class ViewControllerSportinfrastructuur: UIViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {
@IBOutlet weak var pageControl: UIPageControl!
var pageViewController: UIPageViewController!
let pages = ["PageOneViewController", "PageTwoViewController"]
//MARK: - page view controller data source
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if let index = pages.indexOf(viewController.restorationIdentifier!) {
if index > 0 {
return viewControllerAtIndex(index - 1)
}
}
return nil
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
if let index = pages.indexOf(viewController.restorationIdentifier!) {
if index < pages.count - 1 {
return viewControllerAtIndex(index + 1)
}
}
return nil
}
func viewControllerAtIndex(index: Int) -> UIViewController? {
let vc = storyboard?.instantiateViewControllerWithIdentifier(pages[index])
return vc
}
override func viewDidLoad() {
super.viewDidLoad()
if let vc = storyboard?.instantiateViewControllerWithIdentifier("MyPageViewController") {
self.addChildViewController(vc)
self.view.addSubview(vc.view)
pageViewController = vc as! UIPageViewController
pageViewController.dataSource = self
pageViewController.delegate = self
pageViewController.setViewControllers([viewControllerAtIndex(0)!], direction: .Forward, animated: true, completion: nil)
pageViewController.didMoveToParentViewController(self)
pageControl.currentPageIndicatorTintColor = UIColor.blueColor()
pageControl.pageIndicatorTintColor = UIColor.lightGrayColor()
pageControl.numberOfPages = pages.count
}
}
、誰もが、私は現在のページを設定するために使用する必要がありますどのようなコードを知っていますか?前もって感謝します!
あなたが有効にスクロールしている場合は、この上で、あなたのコードをベースにすることをお勧めしません。あなたがスクロールを有効にしている場合、ユーザーは最後まで、または最後まで早送りすることができます。この場合、これらのメソッドは実際には現在のviewControllerのものが混乱することがあります。この不具合を回避したい場合は、UIPageViewControllerデリゲートメソッドfunc pageViewController didFinishAnimatingを使用し、 "completed"をチェックしている間、現在のView ControllerをpageViewController.viewControllers.firstとして取得します – Fawkes