在Swift中设置表视图控制器?

时间:2015-02-02 21:17:13

标签: ios swift uitableview

我正在尝试创建一个表作为我的应用程序的主屏幕,我遇到了一些问题。我正确地设置了main.storyboard,但是我有一个覆盖函数“我没有覆盖超类”。错误发生在nuberOfRowsInSection覆盖功能行上。这是我的代码:

import UIKit

class ViewController: UITableViewController {

    var candies = [Candy]()

    @IBOutlet weak var editButton: UIButton!

        override func viewDidLoad() {
            super.viewDidLoad()

            // Do any additional setup
            // after loading the view.

            self.candies = [Candy(name: "Jolly Rancher"),Candy(name: "Snickers"),Candy(name: "Twix"),Candy(name: "Butterfinger"),Candy(name: "Milky Way")]
        }
     override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    override func tableView(tableView: UITableView, nuberOfRowsInSection section: Int) -> Int {
    return self.candies.count
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell

        var candy : Candy

        candy = candies [indexPath.row]

        cell.textLabel?.text = candy.name
    }


    @IBAction func editButtonPressed(sender: UIButton) {
        editButton.setTitle("Save", forState: UIControlState.Normal)
    }

}

2 个答案:

答案 0 :(得分:0)

你输错了。您调用方法nuberOfRowsInSection。缺少'n'。该方法应称为numberOfRowsInSection

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.candies.count
}

您的cellForRowAtIndexPath方法也出错了。你必须返回单元格:

return cell

答案 1 :(得分:0)

只是一个猜测:

  //  this should read "numberOfRowsInSection": ~~v   
override func tableView(tableView: UITableView, nuberOfRowsInSection section: Int) -> Int {
    return self.candies.count
}

据我所知,UITableViewController没有带参数nuberOfRowsInSection的方法,但确实有参数numberOfRowsInSection的方法。

在处理不起作用的事情时,请先查看代码中的拼写错误。