2016-08-05 11 views
0

私は、複数のUIViewControllersをロードするためにUIPageViewControllerを使用していますが、私は最後の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

viewDidLoad()

+0

ああ、神様に view.backgroundColor = .whiteColor()

を追加します。だから愚かで些細なことだ。どうもありがとう。 – eshirima

関連する問題