gpt4 book ai didi

swift - 如何从成功登录到第二页 - "warning attempt to present on while a presentation is in progress"错误

转载 作者:行者123 更新时间:2023-11-28 16:18:07 27 4
gpt4 key购买 nike

如何在成功验证登录后转到我的第二页?

我已经从登录页面 View Controller (不是登录按钮)拉出一个 segue 到下一页,并将该 segue 命名为“nextPage”。 (如果我从登录按钮继续,那么单击该按钮将允许所有登录继续进行,而无需对其进行测试)。当我从登录页面继续时,它会正确检查详细信息,但在成功登录后不会继续到下一页,而是我收到控制台错误“警告:在演示过程中尝试演示!”

代码是

   @IBAction func loginButtonTapped(sender: AnyObject) {

let userEmail = userEmailTextField.text;
let userPassword = userPasswordTextField.text;
let userEmailStored = NSUserDefaults.standardUserDefaults().stringForKey("userEmail");
let userPasswordStored = NSUserDefaults.standardUserDefaults().stringForKey("userPassword");
if userEmailStored == userEmail && userPasswordStored == userPassword {
// Login successful
// Display an alert message
displayMyAlertMessage("Login successful. Thank you");
NSUserDefaults.standardUserDefaults().setBool(true,forKey:"isUserLoggedIn");
NSUserDefaults.standardUserDefaults().synchronize();
print("login success!")
self.dismissViewControllerAnimated(true, completion:nil);
self.performSegueWithIdentifier("nextPage", sender: self);


} else if userEmailStored != userEmail {
// Login unsuccessful (email incorrect)
NSUserDefaults.standardUserDefaults().setBool(false,forKey:"isUserLoggedIn");
print("login unsuccessful. Incorrect email.")
// Display an alert message
displayMyAlertMessage("Incorrect login details.");
return;
} else if userPasswordStored != userPassword {
// Login unsuccessful (password incorrect)
// Display an alert message
displayMyAlertMessage("Incorrect login details");
//return;
NSUserDefaults.standardUserDefaults().setBool(false,forKey:"isUserLoggedIn");
print("login unsuccessful. Incorrect password.")


}

登录页面出现在初始“ protected ”登录/注销屏幕之后,作为 ViewController.swift 使用此代码

     override func viewDidAppear(animated: Bool)
{

let isUserLoggedIn = NSUserDefaults.standardUserDefaults().boolForKey("isUserLoggedIn");


if(!isUserLoggedIn)
{
self.performSegueWithIdentifier("loginView", sender: self);
}


}


@IBAction func logoutButtonTapped(sender: AnyObject) {

NSUserDefaults.standardUserDefaults().setBool(false,forKey:"isUserLoggedIn");
NSUserDefaults.standardUserDefaults().synchronize();

self.performSegueWithIdentifier("loginView", sender: self);


}

storyboard sequence

最佳答案

我确实建议对此采取不同的方法。

如果您将 storyboardID 设置为 LoginViewController,您可以直接在 AppDelegate 中覆盖 protected 页面检查。

例如你可以尝试这样做

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
[...]

let isUserLoggedIn = NSUserDefaults.standardUserDefaults().boolForKey("isUserLoggedIn")

if isUserLoggedIn {

let storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let vc = storyboard.instantiateViewControllerWithIdentifier("IDYOUSETBEFORE")

window.rootViewController = vc
return
}

为了轻松处理这种情况,我最近设法发布了一个 pod,看看 StoryboardEnum lib

关于swift - 如何从成功登录到第二页 - "warning attempt to present on while a presentation is in progress"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38845502/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com