![](/img/trans.png)
[英]How to correctly segue information from TableView to ViewController
[英]How to logout and segue to the viewcontroller correctly?
我的想法是創建一個登錄應用程序,當我登錄時,我將轉到一個新的視圖控制器並做一些事情,我的代碼是這樣的:
@IBAction func signUp(sender: AnyObject) {
var error = ""
if username.text == "" || password.text == "" {
error = "Please enter a username and password"
}
if error != "" {
displayAlert("Error in form", error: error)
} else {
activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0, 0, 50, 50)) //waiting animation
activityIndicator.center = self.view.center
activityIndicator.hidesWhenStopped = true
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
view.addSubview(activityIndicator)
activityIndicator.startAnimating()
UIApplication.sharedApplication().beginIgnoringInteractionEvents()
if signupActive == true {
var user = PFUser()
user.username = username.text
user.password = password.text
user.signUpInBackgroundWithBlock {
(succeeded: Bool, signupError: NSError?) -> Void in
self.activityIndicator.stopAnimating()
UIApplication.sharedApplication().endIgnoringInteractionEvents()
if signupError == nil {
println("signed up")
} else {
if let errorString = signupError!.userInfo?["error"] as? NSString
{
error = errorString as! String
} else {
error = "Please try again later"
}
self.displayAlert("Could not sign up", error: error)
}
}
} else {
PFUser.logInWithUsernameInBackground(username.text as String!, password:password.text as String!) {
(user: PFUser?, signupError: NSError?) -> Void in
self.activityIndicator.stopAnimating()
UIApplication.sharedApplication().endIgnoringInteractionEvents()
if signupError == nil {
println("logged in")
self.performSegueWithIdentifier("push", sender: nil)
} else {
if let errorString = signupError!.userInfo?["error"] as? NSString {
// Update - added as! String
error = errorString as! String
} else {
error = "Please try again later."
}
self.displayAlert("Could Not Log In", error: error)
}
}
}
}
}
我將注冊和登錄放在同一個按鈕中,然后使用signUpActive
將它們分開,並將self.performSegueWithIdentifier("push", sender: nil)
放入登錄部分,所以當我輸入時正確的密碼和用戶名我可以轉到新的視圖控制器。
它運作良好。 但是當我在新的視圖控制器中添加一個新按鈕,當我點擊該按鈕時,我將轉到第一個視圖控制器並使用PFuser.logout()
注銷,我需要重新輸入正確的用戶名和密碼。
然后這里有一個問題,即使我輸入了錯誤的用戶名,它也會轉到第二個視圖控制器,盡管它會顯示一個警告,說明用戶名無效。 同時,即使我點擊注冊沒有登錄,它也會消失。 為什么會這樣? 誰能幫我?
在嘗試了一天之后,我找到了答案,通過使用unwinded segue,可以很容易地解決這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.