cambiar páginas en UIPageViewController automáticamente con temporizador en swift 3?

yo tengoUIPageViewController que contiene 4 controladores de vista

Configuré el temporizador para cambiar los controladores de vista automáticamente (pasando a los siguientes controladores de vista): este temporizador y este método funcionarán, pero el problema es que funciona solo para la primera diapositiva y cuando la aplicación se ejecutará y después de 5 segundosUIPageViewController mostrará la segunda diapositiva ¡Pero después de eso no pasará nada! Este es el código que usé

lazy var VCArr : [UIViewController] = {

    return [self.VCInstance(name : "VC1"),
            self.VCInstance(name : "VC2"),
            self.VCInstance(name :"VC3"),
            self.VCInstance(name :"VC4")]
}()

func changeSlide() {

    print("Slide Change!")


    guard let currentViewController = self.VCArr.first  else { return }

            guard let nextViewController = dataSource?.pageViewController( self, viewControllerAfter: currentViewController ) else { return }

            setViewControllers([nextViewController], direction: .forward, animated: true, completion: nil)

    }

var tTime: Timer!

override func viewDidLoad() {
    super.viewDidLoad()


    tTime = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(changeSlide), userInfo: nil, repeats: true)


    }

Creo que el problema está en esta línea.

guard let currentViewController = self.VCArr.first  else { return }

Pero no sé cómo cambiar esta línea para que funcione bien

Respuestas a la pregunta(1)

Su respuesta a la pregunta