我的问题具体涉及以下一组操作:我希望用户能够将文本输入到textField中,按下按钮,然后将该文本传输到一个单元格中,然后在表格中新填充该单元格。
我有一个带有文本字段,按钮和表对象的视图控制器。我还有一个数组,当用户输入文本时存储每个字符串,我的代码如下所示:
更新1:添加" self.taskTable.delegate = self"和" self.taskTable.dataSource = self"正如评论中所建议的那样。
更新2:忘记在Storyboard编辑器中添加标识符,代码现在正常运行,谢谢大家!代码现在如下:
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var textField: UITextField!
@IBOutlet var taskTable: UITableView!
var taskArray : NSMutableArray! = NSMutableArray() //Could be a non-NS as well
@IBAction func addTask(sender: AnyObject) {
//Print to alert we entered method
print("task submitted")
//Get input from text field
let input = textField.text
//Add object to array, reload table
self.taskArray.addObject(input!)
self.taskTable.reloadData()
}//addTask
override func viewDidLoad() {
super.viewDidLoad()
self.taskTable.delegate = self
self.taskTable.dataSource = self
print("application finished loading")
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.taskArray.count;
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell:UITableViewCell = self.taskTable.dequeueReusableCellWithIdentifier("cell")!
cell.textLabel?.text = self.taskArray.objectAtIndex(indexPath.row) as? String
return cell
}
}
答案 0 :(得分:0)
您未在viewDidLoad()
添加以下内容:
self.taskTable.delegate = self
self.taskTable.dataSource = self
编辑:错字
答案 1 :(得分:0)
您很可能实际上没有将ViewController设为UITableViewDelegate或UITableViewDataSource。在您的Storyboard中,右键单击您的UITableView并确保设置了委托和数据源。如果它们不是,请从每个旁边的圆圈拖动并将其连接到ViewController。