はじめに
UITableViewでcell長押しによる、画面遷移の実装に少し詰まったので、
longPressGestureRecognizerを用いて画面遷移する方法を記載します。
実装方法
まずViewDidloadにてUILongPressGestureRecognizerの宣言を行います。
override func viewDidLoad() {
super.viewDidLoad()
// UILongPressGestureRecognizerの宣言
let longPressRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(ViewController.longPress(longPressGestureRecognizer:)))
// tableViewにrecognizerを設定
self.view.addGestureRecognizer(longPressRecognizer)
}
次にcellの長押しが実行された際の処理を記載します。
@objc func longPress(longPressGestureRecognizer: UILongPressGestureRecognizer) {
// 長押しが開始されたら処理
if longPressGestureRecognizer.state == UIGestureRecognizer.State.began {
// peformSegueで遷移先へ移動
performSegue(withIdentifier: "遷移先のid", sender: self)
}
}
参考
UIGestureRecognizerについてはこちらの記事を参考にしました。
UIGestureRecognizerの種類
最後に
ご覧頂き有り難うございました!
ご指摘などありましたら、お気軽にコメントください。