2016-08-05 3 views
0

Я использую UIPageViewController загружать несколько UIViewControllers, но каждый раз, когда я пытаюсь прокрутке мимо последнего ViewController или даже попробовать прокрутки в противоположном направлении на старте pageController я получаю пустой экран, как показано ниже. Пустое представление никогда не загружается полностью на представление, но в идеале я хотел бы, чтобы пустой экран просто имел белый цвет, поэтому он явно не был видимым для пользователя.UIPageViewController Пустой экран

The blank screen appears when I try scrolling to the left from the first VC.

The blank screen appears again when I try scrolling past the last VC.

Любая помощь будет принята с благодарностью.

import UIKit 

class MainPageVC: UIPageViewController 
{ 
    var totalPages: [UIViewController] = [UIViewController]() 

    @IBOutlet weak var rightBarButtonItem: UIBarButtonItem! 

    override func viewDidLoad() 
    { 
     super.viewDidLoad() 

     let attributes: [String : AnyObject] = [NSFontAttributeName: Constants.defaultFont] 
    rightBarButtonItem.setTitleTextAttributes(attributes, forState: .Normal) 

     self.delegate = self 
     self.dataSource = self 

     let eyeWearVC = storyboard!.instantiateViewControllerWithIdentifier("eyeWear") as! EyeWearVC 
     let fitnessVC = storyboard!.instantiateViewControllerWithIdentifier("fitness") as! FitnessVC 
     let healthVC = storyboard!.instantiateViewControllerWithIdentifier("health") as! HealthVC 
     let environmentVC = storyboard!.instantiateViewControllerWithIdentifier("environment") as! EnvironmentVC 

     totalPages.append(eyeWearVC) 
     totalPages.append(fitnessVC) 
     totalPages.append(healthVC) 
     totalPages.append(environmentVC) 

     setViewControllers([eyeWearVC], direction: .Forward, animated: true, completion: nil) 
    } 

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

    func viewControllerAtIndex(index: Int)-> UIViewController 
    { 
     if self.totalPages.count == 0 || index >= self.totalPages.count 
     { 
      return UIViewController() 
     } 

     return totalPages[index] 
    } 

extension MainPageVC: UIPageViewControllerDelegate 
{ 

} 

extension MainPageVC: UIPageViewControllerDataSource 
{ 
    func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int 
    { 
     return totalPages.count 
    } 

    func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int 
    { 
     return 0 
    } 

    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? 
    { 
     var currentIndex: Int = totalPages.indexOf(viewController)! 

     if currentIndex == 0 || currentIndex == NSNotFound 
     { 
      return nil 
     } 

     currentIndex -= 1 

     return self.viewControllerAtIndex(currentIndex) 
    } 

    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? 
    { 
     var currentIndex: Int = totalPages.indexOf(viewController)! 

     if currentIndex == NSNotFound 
     { 
      return nil 
     } 

     currentIndex += 1 

     if currentIndex == totalPages.count 
     { 
      return nil 
     } 

     return self.viewControllerAtIndex(currentIndex) 
    } 
} 

ответ

4

Добавить view.backgroundColor = .whiteColor()

в viewDidLoad()

+0

О Боже. Так глупо и тривиально. Большое спасибо. – eshirima