登录屏幕后显示侧边菜单

Posted

技术标签:

【中文标题】登录屏幕后显示侧边菜单【英文标题】:show side menu after login screen 【发布时间】:2018-10-18 07:16:37 【问题描述】:

我正在创建一个 ios 应用程序,但问题是我不知道如何在没有登录屏幕的情况下成功登录后添加 sidemenu 我实现并成功工作,但如何在登录屏幕后使用我无法理解,因为这是我正在创建的第一个应用程序让我展示我的 sidemenu 代码

我正在使用 KYDrawerController 做侧边菜单

在 App Delegate 中我是这样完成的

var drawer = KYDrawerController.init(drawerDirection: .left, drawerWidth: 260)

let storyBoard = UIStoryboard.init(name: "Main", bundle: Bundle.main)

        let mainVC = storyBoard.instantiateViewController(withIdentifier: "Screen2")
        let menuVC = storyBoard.instantiateViewController(withIdentifier: "Drawer")

        self.drawer.mainViewController = mainVC
        self.drawer.drawerViewController = menuVC

        self.window?.rootViewController = self.drawer
        self.window?.makeKeyAndVisible()

在 ViewController On Button Action 中,我正在使用 appdelegate 中的按钮操作

let appDel = UIApplication.shared.delegate as! AppDelegate
        appDel.drawer.setDrawerState(.opened, animated: true)

现在请告诉我点击登录按钮并登录成功后如何使用

这里我直接设置mainVC,但是登录时我不能设置,因为我想在登录后显示sidemenu

我希望你能理解我的问题,请帮助 mo 如何做到这一点

作为参考,我已经完成了这个例子

https://www.youtube.com/watch?v=2Fo491yt4P0

【问题讨论】:

是的,我实施了 github.com/AkashPatel09/Drawer-Demo 【参考方案1】:
func setUpHomeVC() 
    var vc: UIViewController?
    let storyBoard = UIStoryboard.init(name: "Main", bundle: Bundle.main)
    if let user = AppHelper.getCurrentUser()  // if user is login in

        //this is slider menu VC
        let drawerViewController = storyBoard.instantiateViewController(withIdentifier: "Drawer")

        //this is homeVC
        let mainViewController   = storyBoard.instantiateViewController(withIdentifier: "Screen2")
        let drawerController     = KYDrawerController(drawerDirection: .left, drawerWidth: 0.8 * (UIScreen.main.bounds.width))
        let navController = UINavigationController(
            rootViewController: mainViewController)
        navController.view.backgroundColor = UIColor.white
        drawerController.mainViewController = navController
        drawerController.drawerViewController = drawerViewController
        self.window?.rootViewController = drawerController
    else
        vc = SignUpVC() // this is user login VC
        let mainVcIntial = UINavigationController(rootViewController:  vc!)
        mainVcIntial.isNavigationBarHidden = true
        self.window?.rootViewController = mainVcIntial
    


func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool 

    self.window?.backgroundColor = UIColor.white
    setUpHomeVC()
    return true

希望这会对你有所帮助。

【讨论】:

什么是 AppHelper? 你必须检查那里 userIsLogin 的条件 是的,我知道我们需要检查登录条件,但您需要告诉 OP 什么是 AppHelper 以及其中的内容。如果他只是使用你的代码,他会得到一个错误,因为在他的代码中没有任何 AppHelper 文件或类 只需删除该 AppHelper。 getCurrentUser() 并添加用户登录检查,例如 if userIsLogin

以上是关于登录屏幕后显示侧边菜单的主要内容,如果未能解决你的问题,请参考以下文章

Ionic 3 登录后刷新侧边菜单

Ionic 2 - 用户登录后侧边菜单更改

侧边栏菜单实现设置根视图控制器

汉堡菜单/侧面菜单出现错误

用户返回上一个屏幕而不是显示侧面菜单

如何实现像 spotify 这样的侧边栏菜单?