我有一个如下所示的 View Controller 链:
>ROOT (Login)
---->Main Menu
-------->Settings
在设置
内,我有一个注销选项。有没有一种方法可以通过一个流畅的动画直接从 Settings
跳转到 Login
?现在,我在 Settings
上调用 self.dismissViewController
,然后在 Main Menu
上调用,它可以工作,但显示两个动画。
我正在寻找一种直接从设置
转换到登录
的方法,因此它甚至不应该在屏幕上显示主菜单
方式。这可能吗?
最佳答案
AppDelegate 内部(在 didFinishLaunchingWithOptions 内):-
let userLoginStatus = NSUserDefaults.standardUserDefaults().boolForKey("isUserLoggedIn")
if(userLoginStatus)
{
// Assuming "Main" is the name of your storyboard
let mainStoryBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
letMainVC = mainStoryBoard.instantiateViewControllerWithIdentifier("Main") as! MainVC
window!.rootViewController = letMainVC
window!.makeKeyAndVisible()
}
在LoginVC中验证用户凭据后,登录成功后,将Bool值设置为true,如下所示:-
// after successful login
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isUserLoggedIn")
NSUserDefaults.standardUserDefaults().synchronize()
类似地,当用户单击注销时,将 Bool 设置为 false,并将 Login 设置为 Root VC,如下所示:-
//Inside logout closure :-
NSUserDefaults.standardUserDefaults().setBool(false, forKey: "isUserLoggedIn")
NSUserDefaults.standardUserDefaults().synchronize()
let loginVC = self.storyboard?.instantiateViewControllerWithIdentifier("Login") as! LoginVC
let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDel.window?.rootViewController = loginVC
这将直接一次性完成转换。如有任何问题请告诉我。
注意:- 不要忘记在 Storyboard 文件的“身份”部分中设置 Storyboard ID。
关于ios - 跳转 View Controller 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38527023/