2017-01-26 2 views
1

を発射ない...彼ら二人は、最初のものは完全に正常に動作TableViewsスウィフトDidSelectRowAtは、私はいくつかの異なるのVCとのプロジェクトを持っている

を持って、私はそこになどをカスタムビューを持っている

秒1つはカスタムであり、それはちょうど良いの情報を埋めるが、最初のものとは違って...私は次のVCにセグをするためにそれをタップすることはできません

私はデリゲートとデータソースを正しく設定しました。私は、私のプロジェクトに別のVCをテーブルビューで持っています。それはうまく動作します。私が考えることができる最初のことは、UILabelがセルの90%を占めていると思うかもしれませんが、私はラベルを小さくしてタップしてみたので、それはそうではないと思います。ブレークポイント。

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 

    let row = indexPath.row 

    selectedService = serviceArray[row].serviceID! as String 

    if selectedService != "" { 

     self.performSegue(withIdentifier: "fromCardDetailsToEditService", sender: self) 

    } 
    } 

私はそれが重要かどうかわかりませんが、私が行っているVCはタブバーコントローラとナビゲーションバーコントローラです。私がタブバーにいることをperformSegueにとって重要なのでしょうか?そして、このボタンはタブバー項目ではありませんか?

+0

2番目のVCがデータソースとして設定され、テーブルビューの代理人になっていますか?私が持っているところ – Sweeper

+0

だからテーブルビュー(VC私は残すようにしようとしています)私はのviewDidLoad ... self.tableView.delegate =自己中に入れ、そしてself.tableView.dataSource =自己を持っているVCに...それはありますそれは他のVCの上でtableView ....私はカスタムTableViewCellクラスにそれらの2行を移動する必要がありますか? – RubberDucky4444

+0

いいえ、テーブルビューのセルとは関係ありません。これは、基本的には、デリゲートを設定しなかったためではないことを意味します。 – Sweeper

答えて

6

GestureRecognizertableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)の場合に呼び出されていないので、あなたがあなたのUIViewController上の任意のGestureRecognizerを持っていました。

+0

はい、私はやる、私はその後、そのGestureRecognizerを削除してくださいdidSelectRowAt – RubberDucky4444

+0

中断ことを認識していなかった理由を私は知りませんあなたのUIViewControllerのために、その後、再び試してみてのtableViewをご確認ください(_のtableView:のUITableView、didSelectRowAt indexPath:indexPath)が呼び出されるかされます。あなたがイベントに触れることができ、キーボードを閉じキーボード –

+0

はい。 – RubberDucky4444

2

私はジェスチャー認識とdidSelectRowAtを持つ方法を理解しました。

let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(CardDetailsViewController.dismissKeyboard)) 
view.addGestureRecognizer(tap) 

これはすでに紛争の原因となっていたものです。

これを修正するには、この単純な行でキーボードを無効にし、セルをタップできるようにします。

tap.cancelsTouchesInView = false 
関連する問題