如何将动态原型单元链接到不同的UITableViewController?

时间:2015-03-15 10:21:23

标签: uitableview swift dynamic prototype cell

请原谅我,但我是新手代码& amp;迅速的。

无法发布图片,但我需要将自定义UITableViewController 7动态原型单元格链接到7个不同的UItableviewcontrollers。到目前为止,我试图将单元格转换为另一个UITableViewController,但其余的单元格也链接到同一个地方。假设我想将快餐类别链接到UITableViewController中的快餐店列表,其他每个类别也链接到同一个UITableViewController。

我不太清楚该怎么做。

我的主控制器代码如下:

class CategoriesTableViewController: UITableViewController {

    var category: [Categories] = categoriesData

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    // MARK: - Table view data source

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return category.count
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
        -> UITableViewCell {
            let cell = tableView.dequeueReusableCellWithIdentifier("CategoriesCell", forIndexPath: indexPath)as CategoriesCell

                let categories = category[indexPath.row] as Categories
                cell.textLabel?.text = categories.category
                if let categoryLabel = cell.viewWithTag(100) as? UILabel {
                    categoryLabel.text = categories.category
                }
                return cell
            }

这是我的categories.swift文件:

class Categories: NSObject {
    var category: String
    init(category: String) {
        self.category = category
        super.init()
    }
}

categories data.swift

let categoriesData = [Categories(category:"Restaurants/Cafe"), Categories(category:"Fine Dining"), Categories(category:"Catering"),Categories(category:"Buffet"), Categories(category:"Food Court/Hawker Centre"), Categories(category:"Fast Food"), Categories(category:"Others")]

my categories cell.swift shows the following:

class CategoriesCell: UITableViewCell {

    @IBOutlet weak var nameLabel: UILabel!
}

2 个答案:

答案 0 :(得分:0)

也许可以发布图片,这样我们就可以看到你为什么要走那条路了。

我认为您希望tableview的各个部分显示不同的内容?

我建议:

  1. 将表格视图拆分为您想要的部分数量(每个部分可以包含给定的行数)

  2. 创建一个UITableViewController类

  3. 在你的

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

  4. 根据&部分设置内容行号

答案 1 :(得分:0)

试试这个:

  1. 创建7个不同的原型单元格。
  2. 更改每个原型单元格的重用标识符以匹配您的某个类别。
  3. 将每个原型单元格链接到带有segue的不同ViewController。
  4. cellForRowAtIndexPath中,使用该行的类别来获取正确的原型单元格:

    let categories = category[indexPath.row] as Categories
    let cell = tableView.dequeueReusableCellWithIdentifier(categories.category, forIndexPath: indexPath) as CategoriesCell