2017-07-21 4 views
1

次のコードは私のdidSelect行関数のものです。目的は、テーブル行に触れることに基づいて異なることをする2つのテーブルを持つことです。最初の部分は正常に動作します。 tableView 2がタッチされると、印刷行が動作し、行が選択解除されますが、tableView 3が選択されていれば印刷が呼び出されません。両方のtableViewsには、viewController内にアウトレットがあります。didSelectRowAt 2つのテーブルSwift

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

     if tableView == self.tableView2 { 

      sorted = true 

      print ("TEST") 

      filteredDevices.removeAll() 
      filteredOS.removeAll() 
      filteredReported.removeAll() 
      filteredMac.removeAll() 
      filteredVersion.removeAll() 



      let facility = defaults.object(forKey: "facility") as! String 



     self.tableView.reloadData() 

     tableView2.deselectRow(at: tableView2.indexPathForSelectedRow!, animated: true) 

     } 

     if tableView == tableView3 { 

      sorted = true 

      print ("test") 

      filteredDevices.removeAll() 
      filteredOS.removeAll() 
      filteredReported.removeAll() 
      filteredMac.removeAll() 
      filteredVersion.removeAll() 



      self.tableView.reloadData() 
      print ("test") 

      tableView3.deselectRow(at: tableView3.indexPathForSelectedRow!, animated: true) 
     } 



    } 
+0

複数のテーブルを同じビューコントローラで使用することを提案するだけでは、別のデリゲートオブジェクトを作成して、各メソッドにどのテーブルビューが表示されていないかを確認することができます。 – BJHStudios

答えて

1

TableViewControllerのtableView3の代理人を設定していない可能性があります。

tableView3.delegate = self 

tableView2が機能しているので、tableView2のような行が既に存在している必要があります。 tableView3のために1つだけ追加してください。

関連する問題