이번엔 변경한 정보를 다른 페이지에서도 반영하도록 만들려고 한다.
'String' 정보들을 보낼 것이기 때문에 'String' 배열을 담을 수 있는 변수를 클로저를 이용하여 선언해줬다.
그리고 스트링 정보들을 받아서 새로운 화면에서 반영할 매써드도 만들어줬다.
var onConfirmation: (([String], [String]) -> Void)?
func updateOptionLabel(tier: String, position: String) {
선택된 결과 반영... }
그리고 '확인'버튼을 눌렀을때 선택한 정보들을 onConfirmation 변수에 담아줬다.
@objc func confirmationButtonTapped() {
if let selectedTier = selectedTierOption,
let selectedPosition = selectedPositionOption
{
onConfirmation?([selectedTier], [selectedPosition])
}
saveSelectedCellInfo()
dismiss(animated: true, completion: nil)
}
@objc func searchOptionButtonTapped() {
let searchOptionVC = SearchOptionVC()
searchOptionVC.onConfirmation = { [weak self] selectedTier, selectedPosition in
self?.selectedTier = selectedTier
self?.selectedPosition = selectedPosition
self?.updateOptionLabel(tier: selectedTier.first ?? "", position: selectedPosition.first ?? "")
self?.viewWillAppear(true)
}
present(searchOptionVC, animated: true, completion: nil)
}