Arrays 字符串数组中的顺序错误
我有一段代码,它从textfield传递条目,并将它们添加到另一个视图控制器中的字符串数组中。问题是,顺序不对 这是我的代码:Arrays 字符串数组中的顺序错误,arrays,swift,delegates,segue,Arrays,Swift,Delegates,Segue,我有一段代码,它从textfield传递条目,并将它们添加到另一个视图控制器中的字符串数组中。问题是,顺序不对 这是我的代码: //Textfields @IBOutlet weak var text1: UITextField! @IBOutlet weak var text2: UITextField! @IBOutlet weak var text3: UITextField! @IBOutlet weak var text4: UITextField! @IBOutlet w
//Textfields
@IBOutlet weak var text1: UITextField!
@IBOutlet weak var text2: UITextField!
@IBOutlet weak var text3: UITextField!
@IBOutlet weak var text4: UITextField!
@IBOutlet weak var text5: UITextField!
@IBOutlet weak var text6: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//Delegates each textfield
text1.delegate = self
text2.delegate = self
text3.delegate = self
text4.delegate = self
text5.delegate = self
text6.delegate = self
//Tags each textfield
text1.tag = 1
text2.tag = 2
text3.tag = 3
text4.tag = 4
text5.tag = 5
text6.tag = 6
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
let nextTag: NSInteger = textField.tag + 1;
if let nextResponder: UIResponder! = textField.superview!.viewWithTag(nextTag){
nextResponder.becomeFirstResponder()
}
else {
textField.resignFirstResponder()
}
return false
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let destination = segue.destinationViewController as! secondView
if segue.identifier == segueID {
//Adds the textfield entries to the string array on the second view controller
destination.stringArray = view.subviews.flatMap { ($0 as? UITextField)?.text }
destination.delegate = self
}
}
但我不知道我的代码出了什么问题,为什么它会向我的数组发送错误的顺序。我的数组如下所示:
[“q”、“w”、“e”、“t”、“y”、“r”]
什么时候应该
[“q”、“w”、“e”、“r”、“t”、“y”]
这只是我随机选择的字母,条目可以是任何东西。但顺序很重要。谁能检查一下我的代码,看看我哪里出错了?先谢谢你 您需要对正在检索的
UITextField
进行排序
所以换掉这个
destination.stringArray = view.subviews.flatMap { ($0 as? UITextField)?.text }
用这个
destination.stringArray = view
.subviews
.flatMap { $0 as? UITextField }
.sort { $0.0.tag < $0.1.tag }
.flatMap { $0.text }
destination.stringArray=view
.子视图
.flatMap{$0 as?UITextField}
.sort{$0.0.tag<$0.1.tag}
.flatMap{$0.text}
您需要对正在检索的UITextField
进行排序
所以换掉这个
destination.stringArray = view.subviews.flatMap { ($0 as? UITextField)?.text }
用这个
destination.stringArray = view
.subviews
.flatMap { $0 as? UITextField }
.sort { $0.0.tag < $0.1.tag }
.flatMap { $0.text }
destination.stringArray=view
.子视图
.flatMap{$0 as?UITextField}
.sort{$0.0.tag<$0.1.tag}
.flatMap{$0.text}
或者,从标记转到字段,而不是从字段转到标记:
destination.stringArray = (1...6).flatMap({ (view.viewWithTag($0) as? UITextField).text})
或者,从标记转到字段,而不是从字段转到标记:
destination.stringArray = (1...6).flatMap({ (view.viewWithTag($0) as? UITextField).text})
这确实奏效了。当然,我得把它们整理出来。非常感谢。这确实奏效了。当然,我得把它们整理出来。非常感谢你。