zl程序教程

您现在的位置是:首页 >  其他

当前栏目

从文本字段添加entires到UITableView自动填充

2023-04-18 12:52:52 时间

这是我到目前为止的代码。我可以进入文本框并将其显示在UITableView中,但只有在我重新加载页面并返回之后。我想要输入到文本框中,当我点击“添加”时,它会自动出现在UITableView中。从文本字段添加entires到UITableView自动填充

@IBOutlet var itemTextField: UITextField! 
@IBOutlet var table: UITableView! 

var items: [String] = [] 

@IBAction func add(_ sender: Any) { 
    let itemsObject = UserDefaults.standard.object(forKey: "items") 

    var items:[String] 

    if let tempItems = itemsObject as? [String] { 
     items = tempItems 
     items.append(itemTextField.text!) 

     print(items) 
    } else { 
     items = [itemTextField.text!] 
    } 

    UserDefaults.standard.set(items, forKey: "items") 
    itemTextField.text = "" 
} 

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    self.view.endEditing(true) 
} 

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
    textField.resignFirstResponder() 

    return true 
} 

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return items.count 
} 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "cell") 

    cell.textLabel?.text = items[indexPath.row] 
    cell.textLabel?.font = UIFont(name: "Type02", size: 20) 

    return cell 
} 

override func viewDidAppear(_ animated: Bool) { 
    let itemsOBject = UserDefaults.standard.object(forKey: "items") 

    if let tempItems = itemsOBject as? [String]{ 
     items = tempItems 
    } 

    table.reloadData() 
} 

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { 
    if editingStyle == UITableViewCellEditingStyle.delete { 
     items.remove(at: indexPath.row) 

     table.reloadData() 

     UserDefaults.standard.set(items, forKey: "items") 
    } 
} 

LeiLei1

刷新表,则刚过你在数组中追加数据,而不是做在viewDidAppear。 –

我试过这个解决方案,但没有运气......我必须回去一个ViewController并回到ViewController与文本字段和TableView,然后才会出现...任何其他想法... –

回答

它适用于我。

添加textfieldtableview的插座。

@IBOutlet weak var nametextField: UITextField! 
@IBOutlet weak var dataTableView: UITableView! 

添加IBAction添加行动button

@IBAction func addNameToTable(_ sender: Any) { 

     // Check for value in nameTextField 
     guard let profilename = nametextField.text else{ 
      return 
     } 
     // Append text field value in data array 
     data.append(profilename) 
     // Reload table to show text field name in table 
     dataTableView.reloadData() 
    } 

创建array持有字符串值 - :

var data = http://cn.voidcc.com/question/[String]() 

表上添加table方法来填充数据上单击添加按钮。

从文本字段添加entires到UITableView自动填充