首页 > 解决方案 > (UIApplication.shared.keyWindow?.rootViewController as?BaseSlidingController)?.openMenu() return nil Swift 4.2

问题描述

我对上述内容有疑问。我在论坛上找不到确切的信息。它们中的大多数已经过时了,我已经以编程方式编写了代码。我有一个控制器,其中包含一个用于编辑配置文件的视图。更改下面列出的功能后,我无法访问它。我将 rootviewcontroller 设置为其他内容,但无论如何我尝试了 UiApplication 调用,它返回 nil,我无法打开配置文件控制器。这是下面列出的功能。

@objc func handleOpen2() {
    (UIApplication.shared.keyWindow?.rootViewController as? BaseSlidingController)?.openMenu()
}

Xcode 没有给我一个错误,但我无法打开我的菜单。我的 rootviewcontroller 在应用程序委托中设置为其他内容。我有一个控制器,用于在按下编辑配置文件按钮时控制滑动菜单。

    func openMenu() {
        isMenuOpened = true
        redViewLeadingConstraint.constant = menuWidth
        redViewTrailingConstraint.constant = menuWidth
        performAnimations()
        setNeedsStatusBarAppearanceUpdate()
    }

此代码用于打开包含我需要的信息的侧栏菜单,也用于执行动画。我想知道是否有人知道我可以在我的 handleOpen2 函数中做些什么。如果您需要更多代码,请告诉我。谢谢

标签: swift

解决方案


在 swift 5 版本上:

(UIApplication.shared.windows.first?.rootViewController as? BaseSlidingController)?.openMenu()

推荐阅读