2017-04-13 14 views
0

私はfirebaseを使用しています。私のコードは動作しますが、私の問題はacceptボタンを押したときです。私はそのインデックスをcollectionViewから削除したいのですが、直後にテーブルを再読み込みしたいのです。私は別の機能のために必要なので、私は削除するために、スライドを使用することはできません。コレクションの再読み込みは削除後に行います

enter image description here

これは私がcollectionViewを呼び出すためにself.を使用しなかった理由thatsの私のセルクラスです。この関数はaddTarget()メソッドによって呼び出されています。 indexPathをパラメータとして渡すことを考えていますが、パラメータとしてindexPath.itemを渡す方法と、addTarget()メソッド内でパラメータを渡す方法もわかりません。あなたが引数としてindexpath渡す必要はありません

func handleAccept(_ sender: UIButton) { 
     print("button pressed") 
     guard let artId = art?.artId else {return} 
     let approvedRef = 
    FIRDatabase.database().reference().child("approved_art") 
     approvedRef.updateChildValues([artId: 1]) 
     let pendingRef = 
    FIRDatabase.database().reference().child("pending_art").child("\(artId)") 
     pendingRef.removeValue { (error, ref) in 
      if error != nil { 
       return 
      } 
      let layout = UICollectionViewFlowLayout() 
      let pendingArtCollectionViewController = 
    PendingArtsCollectionViewController(collectionViewLayout: layout) 
      DispatchQueue.main.async { 
       pendingArtCollectionViewController.collectionView?.reloadData() 
      } 
     } 
    } 
+0

あなただけの対応する行のindexpathが必要ですテーブルビューの? – Sneha

答えて

0

、次のコードを使用して、ボタンアクションでのtableViewのindexpathを取得することができます:

func handleAccept(_ sender: UIButton) { 
    let center = sender.center 
      let rootViewPoint = sender.superview!!.convert(center!, to: self.myTableView) 
      let currentIndexpath = myTableView.indexPathForRow(at: rootViewPoint) 
    } 
関連する問題