【发布时间】:2016-05-11 21:03:48
【问题描述】:
我的初始视图控制器是一个导航控制器,它的根视图控制器是一个符合UIPageViewControllerDataSource 协议的UIViewController。我的页面内容是三个独特的视图控制器,它们在故事板中都有一个场景和一个 swift 文件。
我将导航栏隐藏在根视图控制器的viewDidLoad() 中。
self.navigationController?.navigationBar.hidden = true
应用启动时,状态栏为白色且不透明。一旦我滚动到下一页,它就会变成半透明的,并且页面的背景颜色会透出来。
发布时的外观
滑动到下一页时的外观
有人可以帮我了解这里发生了什么以及如何解决它吗?如果不明显,我希望启动时的第二个行为;状态栏半透明,页面背景透出。
我试过了
- 在
viewDidLoad():UIApplication.sharedApplication().statusBarStyle = .LightContent -
在根视图控制器中:
override func preferredStatusBarStyle() -> UIStatusBarStyle { return .Default }在
viewDidLoad()后面跟self.setNeedsStatusBarAppearanceUpdate() -
在根视图控制器中:
override func viewWillAppear(animated: Bool) { super.viewWillAppear(true) self.navigationController?.navigationBar.barStyle = .Default self.navigationController?.navigationBar.barTintColor = UIColor.clearColor() } -
在
viewDidLoad()(navigationBar.hidden上方):self.navigationController?.navigationBar.barStyle = .Default self.navigationController?.navigationBar.barTintColor = UIColor.clearColor()
请注意,当我移除导航控制器并将根视图控制器设置为初始视图控制器时,状态栏会按预期显示 - 半透明。
这个question 类似,但没有一个解决方案有效,它已经有一年多了,当我联系发帖者时,他说他认为他在状态栏的下方放置了一个视图。我不确定我是否可以管理视图,使其与页面视图控制器的滚动方面无缝协作。
【问题讨论】:
标签: ios uinavigationcontroller uipageviewcontroller uistatusbar