2016-05-24 20 views
2

我試圖從多個文本字段中獲取文本,這些文本字段是按照用戶需要的方式添加的,方法是按下按鈕並將其添加到數組中以便在按下提交按鈕時使用下一個視圖控制器,但是我無法弄清楚如何去做吧。這是我按下按鈕時如何創建文本字段的代碼。如何從以編程方式在swift 2.0中創建的文本框中檢索文本?

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 

    } 

如果您需要我的其他任何代碼,只需詢問。

回答

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財產

enter image description here

你可以簡單地做到這一點:

textField.text = "HELLO"

1

請勿在函數中聲明您的textField。在你的ViewController類中聲明並在你的函數中進行編輯。那麼你可以參考它:

textField.text 
相關問題