У меня есть простой 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.