自定义 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)
}
有没有一种方法可以标记每个单独的单元格并让它们对不同的 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)
}