Я пытаюсь передать данные, имя которых было выбрано пользователем в моем ShipViewController
, моему ProfileViewController
.Я попытался использовать замыкания для этого, но название кнопки в ProfileViewController
(которое представляет модальный поповер на ShipViewController
) не меняется на имя, выбранное пользователем в ShipViewController
.
Разве это не должно быть String -> () или способ, которым я создаю экземпляр моего контроллера представления, неверен?
(ShipViewController)
var completionHandler:((String) -> ())?
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "shipCell", for: indexPath) as! ShipViewCell
if selectedIndex == indexPath.row {
let result = completionHandler?(shipNames[selectedIndex!])
self.dismiss(animated: true, completion: nil)
}
}
(In viewDidLoad of ProfileViewController)
let vc = storyboard?.instantiateViewController(withIdentifier: "ShipViewController") as! ShipViewController
vc.completionHandler = { (text) -> ()in
print(text)
self.shipButton.setTitle(text, for: .normal)
}