我有3个ViewControllers
和一个包含3个项目的表视图。
如何将每个tableview
行发送到不同的viewcontroller
?
这是我的代码:
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var data: [String] = ["Go to First VC", "Go to Second VC", "Go to Third VC"]
@IBOutlet weak var myTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// Table configurations
myTableView.dataSource = self
myTableView.delegate = self
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cell.textLabel?.text = data[indexPath.row]
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
}
我的猜测是在performSegue()
函数中应用didSelectRowAt
,但我不知道如何引用特定行。
答案 0 :(得分:1)
这很简单
在didSelectRowAtIndexPath
方法中,只需检查indexpath.row
if indexPath.row == 0 {
// go to first viewController
} else if indexPath.row == 1 {
// go to Second viewController
} else if indexPath.row == 0 {
// go to Third viewController
}
答案 1 :(得分:0)
首先在tableviews中选择了识别indexPath.row所需的方法 这里indexpath包含section和row,所以你需要检查segue的行。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == 0 {
//segue first view controller
}
else if indexPath.row == 1 {
//segue second view controller
}
else {
//segue last(third) view controller
}
}
希望这会对你有所帮助。