Вы можете передавать данные из одного контроллера представления в другой следующими способами:
- Делегаты
- Segue
- Уведомление
Я предлагаю вам использовать segue, поскольку вы, должно быть, выполнили действие segue при нажатии на категорию.
Пример кодирования:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
// You can use a traditional push view controller method.
//let id = dataSourceArray[indexPath.item]
//let vc = self.storyboard?.instantiateViewController(withIdentifier: "SubCategories-CollectionView-Controller"") as! SubCategories-CollectionView-Controller
//vc.id = id
// self.navigationController?.pushViewController(vc, animated: false)
// Get the category id and pass it through segue
performSegue(withIdentifier: "identifier", sender: id)
}
и в методе prepare for segue
вы можете просто передать этот идентификаторк следующему контроллеру представления.
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "identifier" {
let senderID = sender as? Int
let vc = segue.destination as? SubCategories-CollectionView-Controller
vc.id = senderID
}
}