2016-08-05 46 views
0

Ich bin ein UIPageViewController mit laden mehrere UIViewControllers aber jedes Mal, wenn ich nach den letzten ViewController versuche Scrollen oder sogar versuchen, die entgegengesetzte Richtung zu Beginn der pageController Scrollen ich einen leeren Bildschirm erhalten, wie unten gezeigt. Die leere Ansicht ist nie wirklich vollständig auf die Ansicht geladen, aber im Idealfall möchte ich, dass der leere Bildschirm einfach einen weißen Hintergrund hat, der für den Benutzer nicht sichtbar ist.UIPageViewController Blank Screen

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.

Jede Hilfe sehr geschätzt wird.

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) 
    } 
} 

Antwort

4

view.backgroundColor = .whiteColor()

in viewDidLoad()

+0

Oh Gott hinzufügen. So dumm und trivial. Danke vielmals. – eshirima