[ios_Swift] 콜렉션뷰 filter 기능 버튼 만들기 (2)

이시영·2023년 11월 9일

이번엔 변경한 정보를 다른 페이지에서도 반영하도록 만들려고 한다.

'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)
    }

그리고 다른 페이지에서 받아온 정보를 updateOptionLabel 라벨에 넣어준다.
 @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)
    }

0개의 댓글