ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <Swift> Delegate
    iOS/개념정리 2022. 1. 25. 15:09

    Delegate란

     Delegation은 상속만큼 재사용을위한 구성을 강력하게 만드는 방법입니다. Delegation에서 요청을 처리하는 데 두 가지 개체가 포함됩니다. 받는 개체(receiving object)는 작업을 대리자(delegate)에게 위임(delegate)합니다. 이것은 부모 클래스에 대한 요청을 연기하는 서브 클래스와 유사합니다. .... 위임과 동일한 효과를 얻기 위해 수신자는 위임 된 작업이 수신자를 참조하도록 대리자에게 자신을 전달합니다.

     

    정리 해보면 delegate엔 3가지가 필요합니다.

    1. 수신자

    2. 대리자

    3. 대리자에게 수신자를 전달

     

    예제

    아래 예제는 UITextFieldDelegate 예제 입니다.

     

    먼져 프로젝트를 생성한 후에 아래와 같이 UI를 그려줍니다.

    UI

    위 그림에서 textfield에 text를 입력한 후 "Click"버튼을 누르면 그 아래 Label 버튼에 text가 입력되는 간단한 화면입니다.

     

    Assistant를 사용해서 textfield, button action, label 을 아래와 같이 연결해 줍니다.

    이제 Click 버튼을 누르면 clickBtn이라는 함수가 실행될 것 입니다.

    아래 이미지는 클릭을 했을때의 화면 입니다.

    실행 화면

    이제 delegate를 사용해 보겠습니다.

    일단 clickBtn action을 주석 처리하고, 채택 작업을 해주셔야 합니다.

    아래와 같이 UITextFieldDelegate라는 프로토콜을 채택 하는 것 입니다.

    채택 작업

    이제 위임자를 정해줘야 합니다.

    위임자

    위의 위임자는 textField가 할일을 내가(self)가 할게 라는 뜻입니다.

     

    구현

    위는 구현 과정 입니다.

    textFieldShouldReturn 함수는 UITextField에 정의 되어있는 함수입니다.

    textFieldShouldReturn 은 클릭이 아닌 엔터키를 입력했을 때 동작하는 함수 입니다.

    아까 위임자를 self로 지정했으니깐 textField가 할 일 즉 textFieldShouldReturn을 self MainViewController에서 처리 합니다.

    위 코드를 입력하고 실행 하면 아래와 같이 실행 잘 됩니다.(클릭 아닌 엔터!)

    Delegate 실행 화면

     

     

     

    출처 : https://zeddios.tistory.com/8

    'iOS > 개념정리' 카테고리의 다른 글

    <Swift> Delegate 활용  (0) 2022.02.21
    [Swift] 고차함수  (1) 2022.02.17
    <Swift> Firebase 연동  (0) 2022.01.25
    Alamofire 이용한 Server 통신  (0) 2022.01.24
    txt 파일 json 파싱하기  (0) 2022.01.24

    댓글

Designed by Tistory.