[iOS/Swift] NotificationCenter 사용하는 방법

최정은·2023년 9월 1일
0

Swift

목록 보기
17/27

NotificationCenter란?

  • 어떠한 행동을 할 때 알림을 받을 수 있는 기능
    예) 키보드가 올라올 때, 키보드가 내려갈 때

특징

  • 1 : N
  • 객체 - 등록을 하면, 신호를 받을 수 있음
  • 동시에 이벤트 발송 가능
  • 리턴값의 개념 없음

NotificationCenter 등록

func setupNotification() {
        // 노티피케이션의 등록 ⭐️
        // (OS차원에서 어떤 노티피케이션이 발생하는지 이미 정해져 있음)
        NotificationCenter.default.addObserver(self, selector: #selector(moveUpAction), name: UIResponder.keyboardWillShowNotification, object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(moveDownAction), name: UIResponder.keyboardWillHideNotification, object: nil)
    }
    

 @objc func moveUpAction() {
        stackViewTopConstraint.constant = -20
        UIView.animate(withDuration: 0.2) {
            self.layoutIfNeeded()
        }
    }
    
    @objc func moveDownAction() {
        stackViewTopConstraint.constant = 10
        UIView.animate(withDuration: 0.2) {
            self.layoutIfNeeded()
        }
    }

NotificationCenter 해제

  • 해제하지 않으면 계속 등록되어 있을 수 있기 때문에 등록 해제해 주어야 함
deinit {
        NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardWillShowNotification, object: nil)
        NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardWillHideNotification, object: nil)
    }

0개의 댓글