SWRevealViewController 不显示来自 Appdelegate 的状态栏推送

Posted

技术标签:

【中文标题】SWRevealViewController 不显示来自 Appdelegate 的状态栏推送【英文标题】:SWRevealViewController not show status bar push from Appdelegate 【发布时间】:2018-02-28 10:47:48 【问题描述】:

我一开始尝试从appdelegate 推送SWRevealViewController,状态栏只是暂时显示,加载viewController 后它没有出现。

这是我的代码,我正在使用 swift:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let sw = storyboard.instantiateViewController(withIdentifier: "revealControllerStoryboard") as! SWRevealViewController
self.window?.rootViewController = sw

let destinationController = storyboard.instantiateViewController(withIdentifier: "searchViewStoryboard") as! SearchViewController
let navigationController = UINavigationController(rootViewController: destinationController)
sw.pushFrontViewController(navigationController, animated: true)

如何永久显示状态栏? 这是图片

【问题讨论】:

第一个状态栏显示但被覆盖或完全不显示??? 你必须为每个页面推送instantiateViewController。 @Sh_Khan 完全没有显示 【参考方案1】:

试试这个编辑

let frontNavigationController:UINavigationController
let rearNavigationController:UINavigationController
let revealController = SWRevealViewController()
var mainRevealController = SWRevealViewController()

let menuTable = self.storyboard?.instantiateViewController(withIdentifier:  "MenuViewController")as! MenuViewController
let homepage = self.storyboard?.instantiateViewController(withIdentifier: "HomeViewController") as! HomeViewController

frontNavigationController =  UINavigationController(rootViewController: homepage)
rearNavigationController =  UINavigationController(rootViewController: menuTable)
rearNavigationController.setNavigationBarHidden(true, animated: false)

revealController.frontViewController = frontNavigationController
revealController.rearViewController = rearNavigationController
revealController.delegate = self
mainRevealController  = revealController

UIApplication.shared.delegate!.window?.rootViewController = mainRevealController

【讨论】:

你把这段代码放在 app delegate 还是 view controller 的什么位置? 第二个代码尝试放在 AppDelegate 上,第一个代码将放在视图控制器上 您的意思是 application.isStatusBarHidden = false 吗?因为我似乎找不到 application.statusBarHidden 你可以在你的AppDelegate didFinishLaunchingWithOptions这个方法中找到application.isStatusBarHidden = false 它似乎无法使用应用委托的第二个代码仍然没有显示状态栏【参考方案2】:

self.window = UIWindow(frame: UIScreen.main.bounds)

不知何故添加这一行使状态栏再次显示

【讨论】:

以上是关于SWRevealViewController 不显示来自 Appdelegate 的状态栏推送的主要内容,如果未能解决你的问题,请参考以下文章

带有 SWRevealViewController 的 ios 滑动状态栏

自定义 SWRevealViewController

SWRevealViewController 的 Segue 问题

如何通过单击按钮打开 SWRevealViewController?

SWRevealViewController 在目标 ViewController 上设置委托

使用 SWRevealViewController 时如何登录注销