как передать данные из ячейки представления коллекции в контроллер представления - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть кнопка в ячейке collectionview, и я пытаюсь получить доступ к текущему заголовку из контроллера представления.

Но когда я пытаюсь получить доступ, я получаю заголовок в качестве заголовка по умолчанию «Кнопка»

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
             let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "graphCell", for: indexPath) as! graphCell


             let row = indexPath.row

            if row == 0{
                print("Compare")
            }

            else if row == 1{
                let optSelected=cell.chooseBTN.title(for: .normal)
                print(option)
                if optSelected=="Sales"{
                    let storyboard = UIStoryboard(name: "Main", bundle: nil)

                    let vc = storyboard.instantiateViewController(withIdentifier: "SalesVC") as! SalesVC

                    vc.buttonClicked = "Sales"; navigationController?.pushViewController(vc, animated: true)
                }
                else if optSelected=="Collection"{
                    let storyboard = UIStoryboard(name: "Main", bundle: nil)

                    let vc = storyboard.instantiateViewController(withIdentifier: "SalesVC") as! SalesVC

                    vc.buttonClicked = "Collection"; navigationController?.pushViewController(vc, animated: true)

                }

            }

            else if row == 2{
                print("PRO-wise")
            }
            else if row == 3{
                print("TAT")
            }

        }

1 Ответ

0 голосов
/ 09 ноября 2018

Заменить

 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "graphCell", for: indexPath) as! graphCell

с

 let cell = collectionView.cellForItem(at:indexPath) as! graphCell

также это

let optSelected=cell.chooseBTN.title(for: .normal)
print(option)
if optSelected=="Sales"{
    let storyboard = UIStoryboard(name: "Main", bundle: nil)

    let vc = storyboard.instantiateViewController(withIdentifier: "SalesVC") as! SalesVC

    vc.buttonClicked = "Sales"; navigationController?.pushViewController(vc, animated: true)
}
else if optSelected=="Collection"{
    let storyboard = UIStoryboard(name: "Main", bundle: nil)

    let vc = storyboard.instantiateViewController(withIdentifier: "SalesVC") as! SalesVC

    vc.buttonClicked = "Collection"; navigationController?.pushViewController(vc, animated: true)
}

можно заменить на

  let vc =  storyboard.instantiateViewController(withIdentifier: "SalesVC") as! SalesVC
  vc.buttonClicked = cell.chooseBTN.title(for: .normal)
  navigationController?.pushViewController(vc, animated: true)
...