【问题标题】:UIPageViewController showing black screenUIPageViewController 显示黑屏
【发布时间】:2017-09-07 06:55:48
【问题描述】:

我的 UIPageViewController 在运行时显示为黑屏。

它是应用委托中设置的根视图控制器:

    window = UIWindow()
    let mainPageViewController = MainPageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal, options: nil)
    window?.rootViewController = mainPageViewController

这是我的 MainPageViewController 代码:

class MainPageViewController: UIPageViewController, UIPageViewControllerDataSource 
{
    override func viewDidLoad()
    {
        super.viewDidLoad()

        dataSource = self

        let profileController = ProfileController()
        let viewControllers = [profileController]
        self.setViewControllers(viewControllers, direction: .forward, animated: true, completion: nil)
    }

    func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController?
    {
        return nil
    }

    func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController?
    {
        return nil
    }
}

我试图设置为初始页面的配置文件控制器是一个普通的 UIViewController。

我已经尝试了很多东西,但它总是只显示黑屏。知道我做错了什么吗?

【问题讨论】:

  • 您是否尝试过在 viewDidLoad() 函数中通过 view.backgroundColor = .white 将 backgroundColor 设置为白色?
  • 是的,它应该显示的视图控制器的背景颜色也是白色的。
  • 你在使用故事板吗?
  • 我试过你的代码,它对我有用。在将其设置为 rootViewController 后尝试添加window?.makeKeyAndVisible()...也许会有所帮助
  • 虽然这不应该导致它.. 但是,PageViewController 看起来不错。尝试创建一个普通的新 UIViewController,将其背景设置为白色并将其设置为代替 profileController - 也许问题就在那里..

标签: ios swift xcode swift3 uipageviewcontroller


【解决方案1】:

您的 PageViewController 非常好。但是,您设置 rootViewController 的过程缺少以下内容:

window = UIWindow()
let mainPageViewController = MainPageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal, options: nil)
window?.rootViewController = mainPageViewController
// This line will make it visible
window?.makeKeyAndVisible()

【讨论】:

    【解决方案2】:

    试试这个:-

    self.window = UIWindow(frame:  UIScreen.main.bounds)
        let mainPageViewController = MainPageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal, options: nil)
        window?.rootViewController = mainPageViewController
        self.window?.makeKeyAndVisible()
    

    【讨论】:

      【解决方案3】:

      我不确定你的问题是什么,如果你的问题是you don't know why your screen is black?,我认为你应该在appDelegate中设置这个:

      window.backgroundColor = .white
      

      这个给你的控制器:

      self.view.backgroundColor = .white
      

      【讨论】:

      • UIPageViewController 应该显示 profilecontroller,它有很多子视图等。
      猜你喜欢
      • 1970-01-01
      • 2015-04-28
      • 1970-01-01
      • 2011-01-11
      • 2012-01-15
      • 2020-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多