自定义 Tableview 以 Segue 到不同的视图控制器

Custom Tableview to Segue to Different View Controller

有没有一种方法可以标记每个单独的单元格并让它们对不同的 ViewController 执行 SegueWithIdentifier?目前,编码只让我得到一个表视图 (calc)。如果我能让每个单独的单元达到套管容量 VC、开孔容量 VC 等,那就太好了。

 class searchtechData : UITableViewController, UISearchBarDelegate, UISearchDisplayDelegate {

        var calculations = [Formulas]()
        var filteredFormulas = [Formulas]()
        override func viewDidLoad() {

            self.calculations = [Formulas(category:"Capacity", name:"Open Hole Capacity"),
                Formulas(category:"Capacity", name:"Casing Capacity"),
                Formulas(category:"Hard", name:"Multiple String Annular Capacity"),
            self.tableView.reloadData()

    }

表格视图

        override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
            let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell
            var forumulas : Formulas

            if tableView == self.searchDisplayController!.searchResultsTableView {
                forumulas = filteredFormulas[indexPath.row]
            } else {
                forumulas = calculations[indexPath.row]
            }
            cell.textLabel!.text = forumulas.name
            cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator
            return cell

        }

继续计算

     override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
            self.performSegueWithIdentifier("calc", sender: tableView)

        }

如果您想根据公式执行转场,那么您必须将转场标识符存储在公式中或根据公式名称为转场命名。然后在索引路径的 didSelectRow 中执行以下操作:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
  var forumulas : Formulas

  if tableView == self.searchDisplayController!.searchResultsTableView {
       forumulas = filteredFormulas[indexPath.row]
     } else {
       forumulas = calculations[indexPath.row]
     }

  self.performSegueWithIdentifier(forumulas.name, sender: tableView)
}