iOS Swift UIPageViewController не отвечает на пролистывание - PullRequest
0 голосов
/ 07 декабря 2018

У меня очень странная проблема.У меня есть простая реализация контроллера просмотра страниц в проекте.Однако контроллер просмотра страниц не отвечает на пролистывание, или, скорее, иногда он пытается пролистать, но останавливается (без обновления) снова, как его зависание, что действительно странно для меня.У меня есть поиск, так что ответы, но ни один из них не отвечает на мою проблему.Пожалуйста, помогите мне в этом.Большое спасибо.Смотрите код ниже, я использовал

  class PageViewController: UIPageViewController, UIPageViewControllerDataSource {


lazy var controllers: [UIViewController] = {
    let sb = UIStoryboard(name: "Onboarding", bundle: nil)

    let vc1 =  sb.instantiateViewController(withIdentifier: "RedVC")
    let vc2 = sb.instantiateViewController(withIdentifier: "PurpleVC")

    return [vc1, vc2]

}()

override func viewDidLoad() {
    super.viewDidLoad()

    self.dataSource = self

    if let firstVC = controllers.first {
        self.setViewControllers([firstVC], direction: .forward, animated: true, completion: nil)
    }

}


func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {

    guard let vcIndex = controllers.index(of: viewController) else { return nil }
    let previousIndex = vcIndex - 1
    guard previousIndex >= 0 else { return nil }
    guard controllers.count > previousIndex else { return nil }
    return controllers[previousIndex]
}

func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {

    guard let vcIndex = controllers.index(of: viewController) else { return nil }

    let nextIndex = vcIndex + 1

    guard controllers.count != nextIndex else { return nil }

    guard controllers.count > nextIndex else { return nil }

    return controllers[nextIndex]
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...