TableView数据使用相同的UIVIewController传递到另一个tableview?

时间:2018-04-10 06:17:24

标签: ios uitableview swift4

我想在第一个tableview上的didSelectRowAt时将第一个tableview数据传递到第二个tableview,并使用相同的viewController。

var bidCreatedByBankerArray : [BidCreatedByBanker]? = nil
var tableData = [String]()

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    if tableView == tableView1{
        return (bidCreatedByBankerArray?.count)!
    }else{
        return (tableData.count)
    }  
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if (tableView == self.tableView1) {
        let cell = tableView1.dequeueReusableCell(withIdentifier: "NumberOfBidsForBorrowerTableViewCell1ID") as? NumberOfBidsForBorrowerTableViewCell1
        let bidCreatedByBankerData = bidCreatedByBankerArray?[indexPath.row]
        cell?.projectDescriptionLabel.text = bidCreatedByBankerData?.projectDescription
        return cell!
    }else {
        let cell = tableView1.dequeueReusableCell(withIdentifier: "NumberOfBidsForBorrowerTableViewCell2ID") as? NumberOfBidsForBorrowerTableViewCell2
        let bidCreatedByBankerData = tableData[indexPath.row]
        return cell!
    }
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    let cell = tableView.cellForRow(at: indexPath) as? NumberOfBidsForBorrowerTableViewCell2
}

对我来说,点击第一张桌面视图时显示空白的细节。

提前致谢

2 个答案:

答案 0 :(得分:0)

你的问题似乎有点不清楚。但我在这里有一些假设:

  • 您的两个表格视图都在同一个视图控制器中。
  • 在视图之间传递数据意味着要与tableview的单元格链接,因为这是放置所有数据的位置,或者假设它位于单元类对象中。

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    
       let cell = tableView.cellForRow(at: indexPath) as? NumberOfBidsForBorrowerTableViewCell2
       // getting cell model object from controller instance array
       let bankerBid = bidCreatedByBankerArray?[indexPath.row]
       // assuming your data is in cell
       let data = cell?.dataNeeded
       // updating second table data
       tableData[indexPath.row] = bankerBid
       if tableView != tableView1 {
          tableView.reloadData()
       }
    
    }
    

如果这不是你要求评论的话,我很乐意提供帮助!

答案 1 :(得分:0)

var bidCreatedByBankerArray : [BidCreatedByBanker] = [BidCreatedByBanker]()
var tableData : [BidCreatedByBanker] = [BidCreatedByBanker]()

@IBOutlet weak var tableView1: UITableView!
@IBOutlet weak var tableView2: UITableView!

扩展NumberOfBidForBorrowerViewController:UITableViewDelegate,UITableViewDataSource {

//MARK: - TableView

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    if tableView == tableView1{
        return (bidCreatedByBankerArray.count)
    }else{
        return (tableData.count)
    }
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if (tableView == self.tableView1) {
        let cell = tableView1.dequeueReusableCell(withIdentifier: "NumberOfBidsForBorrowerTableViewCell1ID") as? NumberOfBidsForBorrowerTableViewCell1
        let bidCreatedByBankerData = bidCreatedByBankerArray[indexPath.row]
        cell?.projectDescriptionLabel.text = bidCreatedByBankerData.projectDescription
        return cell!
    }else {
        let cell = tableView.dequeueReusableCell(withIdentifier: "NumberOfBidsForBorrowerTableViewCell2ID", for: indexPath) as! NumberOfBidsForBorrowerTableViewCell2
        cell.selectionStyle = .default  
        let bidCreatedByBankerData = tableData[indexPath.row]

        cell.cityNameLabel.text = bidCreatedByBankerData.cityName
        return cell
    }
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    tableView2.reloadData()
    if (tableView == self.tableView1) {
        tableView2.isHidden = false
        let bidCreatedByBankerData = bidCreatedByBankerArray[indexPath.row]
        tableData.removeAll()
        tableData.append(bidCreatedByBankerData)
        tableView2.reloadData()
    }
}

}