如何解决按下按钮后在文本字段中输入文本并使文本进入表格视图
几天来就一直在做这个应用程序。因此,我尝试在文本字段中输入“要做的事情”。然后单击保存按钮会将其发送到表格视图。但不幸的是,只能使用保存按钮获取文本字段以打印输入文本。但任何帮助都将不胜感激。前两个“添加的”字符串已添加到tableView中,只是在寻求帮助。
import UIKit
class ViewController: UIViewController,UITextFieldDelegate,UITableViewDelegate,UITableViewDataSource {
//UIViewController,UITableViewDataSource
var added = [String]()
var added2: String = "";
var added3: String = "";
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
added = ["dog","dog2"];
let savedToDo = UserDefaults.standard.object(forKey: "ThingAdded")
if let savedToList = savedToDo as? UITableView {
tableView? = savedToList
// cells.text = savedToList
}
}
// var added: String = "";
func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
return added.count
}
//savedToList
//var transfer = textField.text
func tableView(_ tableView: UITableView,commit deleteSlider: UITableViewCell.EditingStyle,forRowAt indexPath: IndexPath) {
if deleteSlider == .delete {
added.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath],with: .fade)
} else if deleteSlider == .insert {
}
}
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cells = UITableViewCell(style: UITableViewCell.CellStyle.default,reuseIdentifier: "TDList")
cells.textLabel?.text = added[indexPath.row]
return cells
}
/* override func prepare(for segue: UIStoryboardSegue,sender: Any?) {
if segue.identifier == "doneSegue" {
added2 = textField.text!
}
}
*/
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var textField: UITextField!
@IBAction func saveButton(segue: UIStoryboardSegue) {
//_ sender: Any
added3 = textField.text!
//textField.text! == tableView?
// var returns = textField.text;
// textField.text! == tableView
//let additions = segue.source as! tableViewAddition
/* if let table = tableView {
print(table);
}
*/
// performSegue(withIdentifier: "endSegue",sender: nil)
// let theView = segue.source as! tableViewAddition
// added2 = theView.name
// if segue.identfier == "endSegue" {
//added3 = added2.text!
// let controlled = segue.destinationViewController as! tabkeViewAddition
// returns = transfer
UserDefaults.standard.set(textField.text!,forKey: "ThingAdded")
/* if textField >= 1 {
saveOutputButton.isHidden = false;
} else {
saveOutputButton.isHidden = true;
}
*/
/* if textField.text isEqualToString: @"" == TRUE {
saveOutputButton setEnabled: NO
}
*/
/* if textField.text!.isEmpty {
saveOutputButton.isHidden = true;
} else {
saveOutputButton.isHidden = false;
}
*/
added.append(added2)
if let field = textField.text {
print(field);
tableView?.reloadData()
}
}
@IBOutlet weak var saveOutputButton: UIButton!
// right handed and left handed mode
override func touchesBegan(_ touches: Set<UITouch>,with event: UIEvent?) {
self.view.endEditing(true);
}
public func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true;
}
}
解决方法
您需要设置
tableView.delegate = self
tableView.dataSource = self
我还注意到,在您的saveButton
函数中,您正在将文本保存到add3,但是正在将add2添加到数组中。如果将文本保存到add3,则必须将add3添加到数组中。
制作待办事项列表应用程序是学习tableViews和持久数据基础知识的好方法。我强烈推荐这个tutorial video。该频道还有很多其他视频,对于iOS和Swift的初学者来说是一个很好的资源。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。