在UITextField SWIFT

时间:2016-02-07 16:22:55

标签: swift uitextfield segue uistoryboardsegue

我已经实现了一个UITextField,如果输入的信息与我的数组{bdArray}匹配,则根据插入到UITextField中的信息分割到两个不同的ViewControllers然后当按下我的按钮(bedButton)时,视图控制器会切换到viewControllerA与我的bdArray中的正确信息不匹配,它会转移到viewControllerB。我的问题是我想允许Segue到ViewControllerA,如果UITextField中的第一个单词或一个单词匹配我的bdArray,那么将发生segue到viewControllerA。我将如何实现这种方法?

                    @IBAction func bYo(sender: AnyObject) {
    let pText = pTextField.text?.uppercaseString ?? ""
    let pDestination = activeP.map { $0.uppercaseString }.contains(pText) ? "mM" : "nDy"
        performSegueWithIdentifier(pDestination, sender: sender) }

这是我已经用于使UItextField中的文本不区分大小写的代码,这是必需的。有没有办法添加任何代码来进行零件搜索?

1 个答案:

答案 0 :(得分:1)

首先,您需要将textField的文本拆分为String数组,然后检查bdArray是否包含String数组中的一个或多个元素。

let numOfMatches = textField.text?.characters.split { $0 == " " }.filter { bdArray.contains(String($0)) }.count

if numOfMatches > 0 {
  // segue to view controller A
} else {
  // segue to view controller B
}

根据您发布的代码,您可能需要像这样重写它:

@IBAction func bYo(sender: AnyObject) {
  let pText = pTextField.text?.uppercaseString ?? ""
  activeP = activeP.map { $0.uppercaseString }
  let pTextArray = pText.characters.split { $0 == " " }
  var numOfMatches = 0
  var pDestination = ""

  if pTextArray.count == 1 {
    numOfMatches = activeP.filter { pText.containsString($0) }.count
  } else {
    numOfMatches = pTextArray.filter { activeP.contains(String($0)) }.count
  }
  numOfMatches > 0 ? (pDestination = "mM") : (pDestination = "nDy")
  performSegueWithIdentifier(pDestination, sender: sender)
}