UIPageViewControllerを使用して横スワイプで画面遷移させることはできたのですが、今後画面の上部に固定ボタンを追加して、そのボタンでも画面遷移できるようにしたいと考えておりますが、実装方法が不明のため、ご教授願います。

■用意したファイル
FirstViewController.swift(中身はデフォルトです)
SecondViewController.swift(中身はデフォルトです)
ThirdViewController.swift(中身はデフォルトです)
PageViewController.swift(UIPageViewControllerクラスを継承したファイル)

■実装コード
PageViewController.swift

import UIKit

class PageViewController: UIPageViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.setViewControllers([getFirst()], direction: .forward, animated: true, completion: nil)
        self.dataSource = self as UIPageViewControllerDataSource //追加
    }

    func getFirst() -> FirstViewController {
        return storyboard!.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController
    }

    func getSecond() -> SecondViewController {
        return storyboard!.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
    }

    func getThird() -> ThirdViewController {
        return storyboard!.instantiateViewController(withIdentifier: "ThirdViewController") as! ThirdViewController
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

//以下追加
extension PageViewController : UIPageViewControllerDataSource {

    func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
        if viewController.isKind(of: ThirdViewController.self) {
            // 3 -> 2
            return getSecond()
        } else if viewController.isKind(of: SecondViewController.self) {
            // 2 -> 1
            return getFirst()
        } else {
            // 1 -> end of the road
            return nil
        }
    }

    func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
        if viewController.isKind(of: FirstViewController.self) {
            // 1 -> 2
            return getSecond()
        } else if viewController.isKind(of: SecondViewController.self) {
            // 2 -> 3
            return getThird()
        } else {
            // 3 -> end of the road
            return nil
        }
    }
}

■現状の画面
画像の説明をここに入力

■現状のMain.storyboard
画像の説明をここに入力

■実現したい画面
画像の説明をここに入力

■参考にしたサイト
https://qiita.com/Takeshi_Akutsu/items/dbf54df8e8a50e8ed5be