在Swift中使用多个UITableViewController

时间:2015-05-09 08:12:28

标签: ios uitableview swift

在我的iOS应用中,我有两个不同的UITableView 自定义 UITableViewCell。这些表视图不会同时显示。如何为使用swift的人分配不同的数据源?

2 个答案:

答案 0 :(得分:2)

以下是您的完整代码:

import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var table1: UITableView!
@IBOutlet weak var table2: UITableView!

var table1Data = ["a","b","c"]
var table2Data = ["1","2","3"]

override func viewDidLoad() {
    super.viewDidLoad()
    table2.hidden = true

}

@IBAction func showTable1(sender: AnyObject) {

    table1.hidden = false
    table2.hidden = true
}

@IBAction func showTable2(sender: AnyObject) {

    table1.hidden = true
    table2.hidden = false
}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if tableView == table1 {
        return table1Data.count
    }else if tableView == table2 {
        return table2Data.count
    }
    return Int()
}

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

    if tableView == table1 {
        let cell = table1.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell

        let row = indexPath.row
        cell.textLabel?.text = table1Data[row]

        return cell
    }else if tableView == table2 {

        let cell = table2.dequeueReusableCellWithIdentifier("Cell1", forIndexPath: indexPath) as! UITableViewCell

        let row = indexPath.row
        cell.textLabel?.text = table2Data[row]

        return cell
    }

    return UITableViewCell()
    }
}

HERE是您完整的工作项目以获取更多信息。

答案 1 :(得分:1)

您可以在文件

中为两个UITableView设置插座

并将UITableViewDataSrouceDelegate设置如下。

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    if (tableView == Firsttableview) {
        return sectioninFirstTable
    }
    else if (tableView == SecondTableView) {
        return sectioninSecondTable
    }
    return 0
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if (tableView == Firsttableview) {
        return rowinSectionForFirstTable
    }
    else if (tableView == SecondTableView) {
        return rowinSectionForSecondTable
    }
    return 0
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    if (tableView == Firsttableview) {
        var cell : FirstCell = tableView.dequeueReusableCellWithIdentifier("cell") as! ProductWishlistCell

        return cell
    }
    else if (tableView == SecondTableView) {
        var cell : ProductWishlistCell = tableView.dequeueReusableCellWithIdentifier("cell") as! ProductWishlistCell
            return cell
    }
}

希望这可以帮到你!!