我已经实现了一个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中的文本不区分大小写的代码,这是必需的。有没有办法添加任何代码来进行零件搜索?
答案 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)
}