【问题标题】:UIPageViewController Blank ScreenUIPageViewController 空白屏幕
【发布时间】:2016-08-05 18:05:22
【问题描述】:

我正在使用UIPageViewController 加载多个UIViewControllers,但每次我尝试滚动过去最后一个ViewController 或者甚至尝试在pageController 的开头滚动相反的方向时,我都会得到一个如图所示的空白屏幕以下。空白视图从未真正完全加载到视图中,但理想情况下,我希望空白屏幕仅具有白色背景,因此用户不会明显可见。

任何帮助将不胜感激。

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

【问题讨论】:

    标签: ios swift uiviewcontroller uipageviewcontroller


    【解决方案1】:

    添加 view.backgroundColor = .whiteColor()

    viewDidLoad()

    【讨论】:

      猜你喜欢
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 2017-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多