Ниже кода внутри VC2
Хранение массива данных в UserDefault в VC2
let selectedData = membersData.filter{$0.isSelected}
UserDefaults.standard.set(try? PropertyListEncoder().encode(selectedData), forKey:"sessiondata")
принятие VC2Delegate
func dismissProtocole(data: Any) {
<#code#>
}
ПрисутствуетVC2 внутри VC1
if let details = self.storyboard?.instantiateViewController(withIdentifier: "VC2") as?VC2 {
details.modalPresentationStyle = .fullScreen
details.modalTransitionStyle = .crossDissolve
**details.selectedData = selectedData** // pass data
details.delegate = self
self.navigationController?.present(details, animated: true, completion: nil)
}
Внутри VC2
var selectedData: [TeamListData]? // метод экземпляра var делегат: VC2Delegate?
извлечение сохраненных данных в VC2
func storeValidaion(){
// Retrive Array Values
if selectedData == nil {
if let data = UserDefaults.standard.value(forKey:"sessiondata") as? Data {
guard let sessionData = try? PropertyListDecoder().decode(Array<TeamListData>.self, from: data) else {
return
}
print("ARRAY VALUES: \(sessionData)")
self.selectedData = sessionData
self.collectionView.reloadData()
// put your code whatever you want....
}
}
}
метод исключения
func dismiss() {
self.delegate?.dismissProtocole(data: sessionData)
}
Протокол декларации
protocol VC2Delegate {
func dismissProtocole( data : Any)
}