表格单元格未显示数组项目

时间:2015-12-11 23:06:50

标签: ios swift uitableview

首先,我在这里和其他网站上四处寻找我的问题的解决方案。如果我错过了某些内容,请告诉我链接,如果在其他地方有解决方案,我也不打算用问题来解答你的问题。

我的想法是创建一个应用程序(仅限我自己作为一种练习,因为我对swift相当新手)可以从网站上获取NBA时间表,提取游戏和结果并将其显示在表格中。为此我创建了一个textField,用户可以在哪个游戏日输入他想要的结果。他输入的整数改变了网址,网址被正确地溢出,我想要显示的数据作为字符串保存在数组中。

是的,我的问题发生了。这些项目将附加到数组中,array.count将根据用户输入的日期显示正确的数字。唯一的问题是数组中的数据不会显示在表格单元格中。我重新编写了代码并确保我没有搞砸桌子,但是只要我将应用程序的第二部分(从URL获取的信息)添加到应用程序, #39; t显示任何内容。

这有点奇怪,因为这两个部分都可以自己正常工作,但只要我将它们组合起来就会出现问题。你知道我可能搞砸了吗?

有谁知道我的错误是什么?我不是在寻找代码解决方案,只是为了那些可能会告诉我逻辑缺陷的人。也许我错过了一些东西,但我不知道为什么我的单元格没有显示数组的元素,即使阵列设置正确。

提前感谢任何回答并祝你愉快的人! 问候!

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    var gamesArray = [String]()

    var gameDay:Int = 0

    @IBOutlet var textField: UITextField!

    @IBOutlet var gamesTable: UITableView!

    @IBAction func enterButton(sender: AnyObject) {

    gameDay = Int(textField.text!)!
    // webCodeArrayForGames is where i temporarily put the strings I want to add

    for var counter = 1; counter<webCodeArrayForGames.count; counter++{
        self.gamesArray.append(webCodeArrayForGames[counter])               

        }

    override func viewDidLoad()
   {

    super.viewDidLoad()

    gamesTable.delegate = self
    gamesTable.dataSource = self
   }

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

    func TableView(tableView: UITableView, cellforRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{

        let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")

        cell.textLabel?.text = gamesArray[indexPath.row]

        return cell

    }

    override func viewDidAppear(animated: Bool) {
        self.gamesTable.reloadData()

    }

}

1 个答案:

答案 0 :(得分:0)

你可以看看这个:

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/TableViewAPIOverview/TableViewAPIOverview.html

简而言之,您必须提供UITableViewDelegate和UITableViewDataSource。

从代码中,我怀疑你没有为你的表提供dataSource: “数据源采用UITableViewDataSource协议.UITableViewDataSource有两个必需的方法.tableView:numberOfRowsInSection:方法告诉表视图每个部分要显示多少行,而tableView:cellForRowAtIndexPath:方法提供了为每行显示的单元格。桌子。“

你可以这样做:

  1. 从UITableViewDelegate和UITableViewDataSource对您的viewController进行子类化

    class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { .... 
    
  2. 在viewDidLoad()中分配tableview的委托和dataSource:

     override func viewDidLoad() {
         super.viewDidLoad()
         gamesTable.delegate = self
         gamesTable.dataSource = self ....
     }