UIPageViewController 显示黑屏
Posted
技术标签:
【中文标题】UIPageViewController 显示黑屏【英文标题】:UIPageViewController showing black screen 【发布时间】: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 - 也许问题就在那里..
【参考方案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,它有很多子视图等。以上是关于UIPageViewController 显示黑屏的主要内容,如果未能解决你的问题,请参考以下文章
UIPageControl(页面控件)不显示在 UIPageViewController
UIPageViewController - 每个页面显示不同的 Webview
UIPageViewController 不显示其视图控制器视图
UIPageViewController 乱序显示页面,从不调用 viewControllerBeforeViewController