Tableviewcellでセルごとに処理を変えるにはどうするか。TableViewの各セルがタップされると、UITableViewDelegateProtocolから以下のメソッドが呼ばれる。
qiita.rb
tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {}
そして、TableView上のどのセルがタップされたかは、引数のindexPathによって判別することができる。それによって処理を分岐させます。今回はif indexPath.row == 0として、TableView上の最上位のセルを画面遷移の対象とした。
具体的なコードは以下としました。
qiita.swift
import UIKit
import FirebaseFirestore
class ProductsVC: UIViewController, ProductCellDelegate {
let data:Array<String> = ["iPhone", "iPad", "iPod", "MacBook", "tv", "WATCH"]
// Outlets
@IBOutlet weak var tableView: UITableView!
以下省略
qiita.swift
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == 0{
let targetViewController = self.storyboard!.instantiateViewController(withIdentifier: "ToFirstViewController")
self.present(targetViewController, animated: true, completion: nil)
かなり時間がかかったのでメモ書きです。