使用 SWRevealViewController 时如何登录注销
Posted
技术标签:
【中文标题】使用 SWRevealViewController 时如何登录注销【英文标题】:How to login logout when using SWRevealViewController 【发布时间】:2017-08-04 11:44:15 【问题描述】:你好朋友我正在使用 SWRevealViewController 作为菜单。我在 root 上使用了 loginViewController,登录后它来到了dashboardViewController。它工作正常,但问题在于注销,我无法注销。我首先将两个 navigationController 用于 loginViewController,第二个用于 dashBoardViewController。
用于登录
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let profileNC = storyboard.instantiateViewController(withIdentifier: "SWRevealViewController")
self.navigationController?.pushViewController(profileNC, animated: true)
故事板的设计是
谁能帮帮我,提前谢谢
【问题讨论】:
你用 popToRootViewController 试过了吗? 是的,我试过了,但是由于我的第二个导航控制器,它仍然停留在那个控制器上。 您的注销按钮在哪里?在 SWReveal 菜单中还是在简单的视图控制器中? 它在导航栏上,它在运行时出现 更好的方法是,将dashboardViewController 作为入口点。并检查登录用户,如果用户未登录,则将 loginVC 作为根视图控制器。 【参考方案1】:像这样将 loginVC 作为根视图控制器:
let loginVC = self.storyboard?.instantiateViewController(withIdentifier: "LoginVC") as! LoginVC
let appDel:AppDelegate = UIApplication.shared.delegate as! AppDelegate
appDel.window?.rootViewController = loginVC
【讨论】:
我必须把这段代码放在 didFinishLaunchingWithOptions 或 loginController 中 didFinishLaunchingWithOptions 在“成功注销”点击事件中。 它显示错误“'AppDelegate' 类型的值没有成员 'storyboard'” 不要放入 AppDelegate。它用于注销按钮。如果成功注销,则此代码将 LoginVC 作为根视图控制器。【参考方案2】:将此代码放入 AppDelegate 并使用
func goToLogin()
let viewcontroller : UIViewController = self.storyboard?.instantiateInitialViewController()!;
self.window!.rootViewController = viewcontroller
self.window?.makeKeyAndVisible();
用法:从任何你想退出的人调用
let appDel:AppDelegate = UIApplication.shared.delegate as! AppDelegate
appDel.goToLogin()
【讨论】:
以上是关于使用 SWRevealViewController 时如何登录注销的主要内容,如果未能解决你的问题,请参考以下文章
使用相同 SWRevealViewController 的不同 ViewController 上的侧边栏
右侧使用 SWRevealViewController 的两个面板
使用 SWRevealViewController 时应用程序崩溃
带有 SWRevealViewController 的 ios 滑动状态栏
如何使用 swrevealviewcontroller 打开菜单启动应用程序?
UINavigationController:使用 SWRevealViewController 错误:不平衡调用开始/结束外观转换