条件下的 Swift 自定义 segue

标签 swift xcode6 segue

我正在尝试根据用户登录信息是否正确有条件地执行 segue。

我有一个从我的登录 View Controller 到一个新的 Navigation Controller 的模态转场。

我几乎尝试了所有遇到的建议,但似乎没有任何效果。使用 Sift 和 Xcode 6。

import UIKit

import AudioToolbox

class ViewController: UIViewController {

   @IBOutlet weak var usernameTextField: UITextField!

   @IBOutlet weak var passwordTextField: UITextField!

   @IBOutlet weak var incorrectCredentialLabel: UILabel!

   @IBAction func loginAction(sender: UIButton) {

       var username = "test"
       var password = "code"

       println("Username: " + usernameTextField.text)
       println("Password: " + passwordTextField.text)

       if usernameTextField.text == username &&
          passwordTextField.text == password {

          usernameTextField.resignFirstResponder()
          passwordTextField.resignFirstResponder()

          println("Login Status: success")

       self.shouldPerformSegueWithIdentifier("loginSegue", sender: nil)

    } else {

         usernameTextField.resignFirstResponder()
         passwordTextField.resignFirstResponder()

         AudioServicesPlayAlertSound(1352)
        /*AudioServicesPlayAlertSound(kSystemSoundID_Vibrate)*/

         incorrectCredentialLabel.text = "username or password is incorrect"
         incorrectCredentialLabel.textColor = UIColor.redColor()

         println("Login Status: failed")
    }
}

 override func viewDidLoad() {
     super.viewDidLoad()
     // Do any additional setup after loading the view, typically from a nib.
 }

 override func didReceiveMemoryWarning() {
     super.didReceiveMemoryWarning()
     // Dispose of any resources that can be recreated.
 }

}

最佳答案

这对我有用。两个 UITextFields 和一个 UIButton 以及从 VC 到 VC2 的模式转场:

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    let userName = "John"
    let passCode = "123"

    @IBOutlet weak var Name: UITextField!

    @IBOutlet weak var Pass: UITextField!
    @IBAction func tapButton(sender: UIButton) {

        if self.Name.text == "John" && self.Pass.text == "123" {

         performSegueWithIdentifier("nextView", sender: self)
        }
    }

    //ViewController lifecycle
    override func viewDidLoad() {
        super.viewDidLoad()

        self.Name.delegate = self
        self.Pass.delegate = self

    }
}

关于条件下的 Swift 自定义 segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26415509/

相关文章:

swift - 在 Swift 中为启动屏幕设置文件所有者的目的是什么?

ios - swift 3 : only nil values in destination view controller of segue

ios - 一个segue来统治他们

ios - 用于捕获 QR 码的代码在 Xcode8 和 Swift3 中似乎运行不佳

ios - 如何将值从单独的类传递到 AppDelegate?

facebook - 在 Xcode 中使用 Swift 解析 Facebook SDK 设置

ios - Spinner(UIActivityIndi​​cator) 在 iOS 中不显示

arrays - 如何使用prepareForSegue从二维数组传递值

ios - 字符串比较不适用于 Swift

arrays - 解决这个完成 block