这是前一个问题的构建。
我有一个像这样定义的数组:
var items = [[String:String]]()
此数据从json文件动态更新
for (_,bands) in json {
for (_,bname) in bands {
let bnameID = bname["id"].stringValue
let bnameName = bname["Title"].stringValue
let dict = ["id":bnameID,"Title":bnameName]
self.items.append(dict as [String : String])
self.tableView.reloadData()
}
}
这是打印项目数组时的输出
[["Title": "The Kooks", "id": "2454"],
["Title": "The Killers", "id": "34518"],
["Title": "Madonna", "id": "9"]]
在此功能中
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { }
如何让单元格标签显示数组“标题”部分中的项目?
在此功能中:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { }
如何从与单击的单元格对应的数组中获取值'id'?例如,如果单击了杀手单元格,那么我可以设置一个值为的变量: 34518
答案 0 :(得分:2)
获取title
:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
print(items[indexPath.row]["Title"])
}
获取id
:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print(items[indexPath.row]["id"])
}
答案 1 :(得分:1)
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier("MyCell", forIndexPath: indexPath)!
let dictn : NSDictionary = items[indexPath.section] as! NSDictionary
cell.textLabel?.text = dictn.objectForKey("Title") as? String
return cell
}
答案 2 :(得分:0)
回答问题1 -
您可以使用indexPath的行值来获取items数组中项目的标题:
let item = items[indexPath.row]
//Fetch the id
let title = item["Title"]!
回答问题2 -
let item = items[indexPath.row]
//Fetch the id
let id = item["id"]!
因此,在任何一种情况下,您都将使用indexPath的行值从items数组中获取关联项。