Это уже нужно делать в замыкании
Примерно так
self.referenceToCollectionViewClass.initData(arraySheduleFilms)
Передача json из класса в класс
Я рассчитывал это сделать вот так )
private let reuseIdentifier = "cellShedule"
class DataProvider:NSObject {
var dataManager = DataManager()
}
extension DataProvider: UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return dataManager.arraySheduleFilms.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! SheduleCell
cell.nameFilm.text = dataManager.arraySheduleFilms[indexPath.row].film
cell.imageFilm?.downloadImage(from: (dataManager.arraySheduleFilms[indexPath.row].bigPoster! ))
return cell
}
}
extension DataProvider: UICollectionViewDelegate {
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = dataManager.arraySheduleFilms[indexPath.row]
}
}
Что-то мне подсказывает, что массив в таком случае будет пустой.
И придется делать инициализатор, в котором будет вызываться filmsMenu и в замыкании записывать данные в локальную переменную и вызывать reloadData().
Или попробуйте сделать так
class DataProvider: ... {
var items: [SheduleFilm] = [] {
didSet {
collectionView.reloadData()
}
}
}
Во ViewController’e
override func viewDidLoad() {
super.viewDidLoad()
dataManagerJson.filmsMenu(dates: self.currentData) { items in
self.dataProvider.items = items
}
}
Правда я не уверен насчет collectionView.reloadData(), получится ли достучатся так до элемента.
Тогда так
class DataProvider: ... {
var items: [SheduleFilm] = []
}
Во ViewController’e
@IBOutlet weak var collectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
dataManagerJson.filmsMenu(dates: self.currentData) { items in
self.dataProvider.items = items
self.collectionView.reloadData()
}
}
Искренне признателен щас то, что нужно. Спасибо огромное за помощь потратили целый день!!! Вы ПРОФИ
RexHunt
направьте на путь Истины. Т.к CollectionView в отельном классе, то не работает переход по
self.performSegue(withIdentifier: “detailVC”, sender: cell)
В DataProvider сделайте делегат и подпишитесь на него в вашем VC и через делегат делайте свои переходы.