我正在尝试从多个文本字段中获取文本,这些字段是按用户需要的方式添加的,通过按下按钮并将其添加到数组以在按下提交按钮时在下一个视图控制器上使用但是我无法弄清楚怎么做。这是我按下按钮时如何创建文本字段的代码。
var numberOfTasks = 1
var i = 0
@IBAction func addTaskButton(sender: AnyObject)
{
numberOfTasks = numberOfTasks + 1
addNewTask()
}
override func viewDidLoad() {
scrollViewTAR.contentSize.height = 50
addNewTask()
}
func addNewTask(){
var yPosition:CGFloat = 10
var xPosition:CGFloat = 0
var textWidth:CGFloat = scrollViewTAR.frame.width-20
for (i=0; i<numberOfTasks; i = i + 1){
var textField: UITextField = UITextField()
textField.frame = CGRectMake(xPosition, yPosition, textWidth, 30)
textField.placeholder = "Enter Task \(i + 1) Here"
textField.font = UIFont.systemFontOfSize(15)
textField.borderStyle = UITextBorderStyle.RoundedRect
textField.autocorrectionType = UITextAutocorrectionType.No
textField.keyboardType = UIKeyboardType.Default
textField.returnKeyType = UIReturnKeyType.Done
textField.clearButtonMode = UITextFieldViewMode.WhileEditing;
scrollViewTAR.addSubview(textField)
scrollViewTAR.frame.size.width = view.frame.width-20
scrollViewTAR.center = view.center
scrollViewTAR.contentSize.height += 20
yPosition += 35
}
如果您需要我的其他任何代码,请询问。
答案 0 :(得分:1)
不要在函数中声明你的textField
。在ViewController
类中声明它并在函数中编辑它。然后你可以参考:
textField.text
答案 1 :(得分:1)
您遇到的问题是范围界定问题。当你宣布
时var textField: UITextField = UITextField()
这意味着此texfield仅在此函数中作用域
所以你有几个选择
1)将您的功能更改为:
func addNewTask() -> UITextField
并让它返回textField
2)使textField
成为班级建构
var textfield: UITextField?
func addNewTask() {
// lots of code
self.textField = UITextField()
}
但是,在任何一种情况下,当您访问文本的值时,请参阅
.text
属性
你可以通过以下方式做到这一点:
textField.text = "HELLO"