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