Черный фон за контроллерами в UIPageViewController - PullRequest
0 голосов
/ 13 марта 2019

У меня есть простой UIPageViewController с 3 страницами, которые все ViewControllers встроены в NavigationControllers.

Когда я прокручиваю эти страницы, страница справа имеет черный фон за ней в течение всей прокрутки. Когда контроллер защелкивается, он возвращается в нормальное состояние.

Вот как это выглядит.

Как мне это исправить ??

решено: в подклассе UIPageViewController: self.view.backgroundColor = .white

Код:

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

    let yesterdayVC = sb.instantiateViewController(withIdentifier: "Yesterday")
    let todayVC = sb.instantiateViewController(withIdentifier: "Today")
    let tomorrowVC = sb.instantiateViewController(withIdentifier: "Tomorrow")

    return [yesterdayVC, todayVC, tomorrowVC]
}()

override func viewDidLoad() {
    super.viewDidLoad()

    self.dataSource = self
    setViewControllers([viewControllerList[1]], direction: .forward, animated: true, completion: nil)
}

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

    guard let vcIndex = viewControllerList.firstIndex(of: viewController) else { return nil }

    let previousIndex = vcIndex - 1

    guard previousIndex >= 0 else { return nil }
    guard viewControllerList.count > previousIndex else { return nil }

    return viewControllerList[previousIndex]
}

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

    guard let vcIndex = viewControllerList.firstIndex(of: viewController) else { return nil }

    let nextIndex = vcIndex + 1

    guard viewControllerList.count > nextIndex else { return nil }

    return viewControllerList[nextIndex]
}

Редактировать: размещение представления за NavigationControllers или PageViewController не помогает. Цвет всегда черный независимо от цвета фона PageViewController.

1 Ответ

0 голосов
/ 13 марта 2019

Подкласс UIPageViewController и в viewDidLoad() вызов self.view.backgroundColor = .white. Это должно исправить вашу проблему.

...