首先,我在这里和其他网站上四处寻找我的问题的解决方案。如果我错过了某些内容,请告诉我链接,如果在其他地方有解决方案,我也不打算用问题来解答你的问题。
我的想法是创建一个应用程序(仅限我自己作为一种练习,因为我对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()
}
}
答案 0 :(得分:0)
你可以看看这个:
简而言之,您必须提供UITableViewDelegate和UITableViewDataSource。
从代码中,我怀疑你没有为你的表提供dataSource: “数据源采用UITableViewDataSource协议.UITableViewDataSource有两个必需的方法.tableView:numberOfRowsInSection:方法告诉表视图每个部分要显示多少行,而tableView:cellForRowAtIndexPath:方法提供了为每行显示的单元格。桌子。“
你可以这样做:
从UITableViewDelegate和UITableViewDataSource对您的viewController进行子类化
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { ....
在viewDidLoad()中分配tableview的委托和dataSource:
override func viewDidLoad() {
super.viewDidLoad()
gamesTable.delegate = self
gamesTable.dataSource = self ....
}