gpt4 book ai didi

swift - 使用 Alamofire swift 登录后如何向我的 UserProfileViewController 显示用户详细信息

转载 作者:行者123 更新时间:2023-11-28 08:28:17 24 4
gpt4 key购买 nike

我正在开发一个应用程序,其中有 loginViewController 和 UserProfileViewController。登录后,我想使用 NSUserDefaults 在我的 UserProfileVC 上查看我的记录。

注意:在我的 LoginVC 上,我只有 emailTextField 和 PasswordTextField。我想传递来 self 的数据库的名字并将其传递给我的 UserProfileVC

这是我的LoginVC:

  @IBAction func loginAction(sender: AnyObject){

showLoadingMode (self)

let email = emailTextField.text
let password = passwordTextField.text
let parameters = [
"email" : email!,
"password" : password!
]

if (self.emailTextField.text == "" || self.passwordTextField.text == "" ) {
let alert = UIAlertController(title: "Sign in Failed", message: "Please enter Email Address and Password", preferredStyle: .Alert)
let okAction = UIAlertAction(title: "Ok", style: .Default, handler: nil)
alert.addAction(okAction)
self.presentViewController(alert, animated: true, completion: nil)
actInd.stopAnimating()
}
else
{

let url = "http://localhost/alamofire/json-login.php"

Alamofire.request(.GET, url, parameters: parameters).responseJSON { response in

if let j = response.result.value {
actInd.stopAnimating()
var json = JSON(j)
print(json)

let result = json["result"].stringValue

//我想在这里使用 NSUserDefaults 并将其发送到我的 UserProfileVC

            let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
prefs.setObject(json["firstname"], forKey: "firstname")
prefs.setObject(email, forKey: "email")
prefs.setInteger(1, forKey: "ISLOGGEDIN")
prefs.synchronize()

if result == "1" {
self.performSegueWithIdentifier("gotoUserProfile", sender: self);

}else{

let alert = UIAlertController(title: "Alert!", message: "Fail", preferredStyle: .Alert)
let okAction = UIAlertAction(title: "Ok", style: .Default, handler: nil)

alert.addAction(okAction)

self.presentViewController(alert, animated: true, completion: nil)

}
}

}
}}

最佳答案

因此,首先您要创建一个用户模型,您可以在您的应用中重复使用它:

class User {
var email = ""
var firstname = ""

init(email: String, firstname: String) {
self.email = email
self.firstname = firstname
}
}

现在在 LoginVCloginAction()

// make stuff and request
if let j = response.result.value, let firstname = j["firstname"] as? String {
actInd.stopAnimating()
var json = JSON(j)
let user = User(email: email, firstname: firstname)
let result = json["result"] ?? "0" // if json["result"] doesn't exist it will be equal to "0"
if result == "1" {
dispatch_async(dispatch_get_main_queue) { // It is recommended to do UI relative action inside the main thread.
self.performSegueWithIdentifier("gotoUserProfile", sender: user) // Here you send your user to be usable in prepareForSegue
}
}
} // Do other stuff

并且在你的 LoginVCprepareForSegue

func prepareForSegue(segue: NSStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "gotoUserProfile" {
let destinationVC = segue.destinationController
destinationVC.user = sender // So you have to make a User attribute in your UserProfileVC
}
}

希望对您有所帮助。

关于swift - 使用 Alamofire swift 登录后如何向我的 UserProfileViewController 显示用户详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39450432/

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