我在一个视图控制器中有两个表视图。我们假设表格为table1和table2。当我在table1中选择一行时,我想更改table2中的数据。我怎么做? (我不能使用segue标识符,因为这些表在一个窗口中)
我的代码如下。在我的table1中我有lesson1数组。在table2中我有Lessons2数组。所以现在我想点击table1的第二行,并在table2.likewise中显示资源数组中的数据。你可以帮我解释一下代码吗。我试过如下。但我知道这完全错了
let Resources = ["Word Doc on Probability", "Extra Sums", "Homework","",""]
let lessons1 = ["Term1", "Term2"," Term3"]
let Lessons2 = ["Create a set theory", "Draw Ven Diagrams", "iOS Developer Tips"]
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// Return the number of items in the sample data structure.
var count:Int?
if tableView.tag == 3 {
count = lessons1.count
}
else if tableView.tag == 4 {
count = Lessons2.count
} return count!
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:UITableViewCell?
if tableView.tag == 3 {
cell = tableView.dequeueReusableCellWithIdentifier("TextCell3", forIndexPath: indexPath)
let row = indexPath.row
cell!.textLabel!.text = lessons1[row]
}
else if tableView.tag == 4 {
cell = tableView.dequeueReusableCellWithIdentifier("TextCell4", forIndexPath: indexPath)
let row = indexPath.row
cell!.textLabel!.text = Lessons2[row]
}
return cell!
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
////this code is wrong/////
let row = indexPath.row
if tableView.tag == 3 {
if indexPath.row == 1 {
let cell = tableView.dequeueReusableCellWithIdentifier("TextCell4", forIndexPath: indexPath)
cell.textLabel!.text = Objectives[row]
lessons.reloadData()
}
}
答案 0 :(得分:0)
tableView反映了模型中存储的数据。在table1
中选择行后,更新table2
模型中的数据,然后调用table2.reloadData()
。
@IBOutlet tableView1: UITableView!
@IBOutlet tableView2: UITableView!
let Resources = ["Word Doc on Probability", "Extra Sums", "Homework","",""]
let lessons1 = ["Term1", "Term2"," Term3"]
let Lessons2 = ["Create a set theory", "Draw Ven Diagrams", "iOS Developer Tips"]
var dataForTable1 = [String]()
var dataForTable2 = [String]()
override func viewDidLoad() {
super.viewDidLoad()
dataForTable1 = lessons1
dataForTable2 = Lessons2
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// Return the number of items in the sample data structure.
var count = 0
if tableView.tag == 3 {
count = dataForTable1.count
}
else if tableView.tag == 4 {
count = dataForTable2.count
}
return count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:UITableViewCell?
if tableView.tag == 3 {
cell = tableView.dequeueReusableCellWithIdentifier("TextCell3", forIndexPath: indexPath)
let row = indexPath.row
cell!.textLabel!.text = dataForTable1[row]
}
else if tableView.tag == 4 {
cell = tableView.dequeueReusableCellWithIdentifier("TextCell4", forIndexPath: indexPath)
let row = indexPath.row
cell!.textLabel!.text = dataForTable2[row]
}
return cell!
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
let row = indexPath.row
if tableView.tag == 3 {
if indexPath.row == 1 {
dataForTable2 = Resources
tableView2.reloadData()
}
}
}
答案 1 :(得分:0)
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
tableView.deselectRowAtIndexPath(indexPath, animated: true)
if tableView.tag == 3
{
if indexPath.row == 1
{
Lessons2 = Resources
lessons.reloadData() //table2 is data reload
}
}
}