2016-07-06 69 views
0

我的问题具体涉及以下一组操作:我希望用户能够将文本输入到textField中,按下按钮,然后让该文本转移到一个新的单元格中,然后新填充到表格中。按钮添加单元格textField文本到表Xcode/Swift 2.0

我有一个视图控制器与文本字段,按钮和表对象。我还有一个数组,用于存储每个字符串作为用户输入文本,并且我的代码如下所示:

更新1:添加“self.taskTable.delegate = self”和“self.taskTable.dataSource = self”正如评论中所建议的那样。

更新2:忘了在故事板编辑器中添加标识符,代码现在可用,谢谢大家!代码如下内容:

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

什么是你的问题? – Emptyless

+0

以及我目前介绍的代码不起作用,所以我想知道是否有任何更改,我可以使其功能 – jb990

回答

0

最有可能你的避风港实际上你的ViewController是UITableViewDelegate或UITableViewDataSource。在Storyboard中,右键单击您的UITableView并确保设置了委托和数据源。如果不是,请从每个旁边的圆圈拖出并将其连接到ViewController。

+0

感谢克里斯,唯一的问题是现在在下面的评论线程中的一个。 – jb990

0

你没有在你的viewDidLoad()

添加代理引用添加以下内容:

self.taskTable.delegate = self 
self.taskTable.dataSource = self 

编辑:错字

+0

有趣的是,它提出了以下错误:“类型'UITableView'的值没有成员'数据源'“ – jb990

+0

@ jb990它应该是self.taskTable.dataSource与大写S –

+0

陷阱。清除这些错误。现在只有问题是运行时错误:“let cell:UITableViewCell = self.taskTable.dequeueReusableCellWithIdentifier(”cell“)!”声称值为零被发现 – jb990

相关问题