我有一个用户名和密码登录屏幕。我现在可以在应用程序关闭并再次打开后加载用户名和密码,但我必须单击登录按钮,而不是我想要它执行segue,如果凭据是正确的。我正在使用NSUserDefault来记住凭据。以下是我的代码。如何让程序在加载用户信息后执行segue?
override func viewDidLoad() {
super.viewDidLoad()
if let usernameIsNotNill = defaults.objectForKey("username") as? String {
self.usernameField.text = defaults.objectForKey("username") as? String
}
if let passwordIsNotNill = defaults.objectForKey("password") as? String {
self.passwordField.text = defaults.objectForKey("password") as? String
}
// Do any additional setup after loading the view.
}
@IBAction func loginAction(sender: AnyObject) {
let username = self.usernameField.text
let password = self.passwordField.text
if(username!.utf16.count) < 4 || (password!.utf16.count < 5){
let alert = UIAlertView(title: "Invalid", message: "Username must be greater then 4 and Password must be greater then 5", delegate: self, cancelButtonTitle: "OK")
alert.show()
}else{
self.actInd.startAnimating()
PFUser.logInWithUsernameInBackground(username!, password: password!, block: { (user, error) -> Void in
self.actInd.stopAnimating()
if ((user) != nil) {
//var alert = UIAlertView(title: "Success", message: "Logged In", delegate: self, cancelButtonTitle: "OK")
//alert.show()
var defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(self.usernameField.text, forKey: "username")
defaults.setObject(self.passwordField.text, forKey: "password")
defaults.synchronize()
dispatch_async(dispatch_get_main_queue(),{
self.performSegueWithIdentifier("login", sender: self)
})
}else {
let alert = UIAlertView(title: "Error", message: "\(error)", delegate: self, cancelButtonTitle: "OK")
alert.show()
}
})
}
}
确定什么问题你面对我的兄弟 –
所以,当我打开应用程序,用户名和密码字段都充满了正确的凭据,但我必须点击登录按钮相反,我希望继续执行,而不是单击登录按钮。 – xxtmanxx
描述什么不按预期工作,以便我们更好地了解您的问题。 – noobsmcgoobs