스위프트(Swift)

[iOS] 액션 함수(Action Function) 추가 및 활용하기 | 액션함수 문법

뜯기 2021. 6. 4. 07:00

 

 

 

: 액션 함수(Action Function)

간단하게 의미를 말하면 동작을 정의하는 함수로, 어떠한 동작을 할 수 있도록 정의하고 연결시켜주는 역할을 합니다.

예를 들면, 버튼을 클릭하면 입력된 텍스트를 표시하고자 할 때 데이터를 표시하는 함수를 만들고 해당 버튼과 연결시켜이벤트를 처리하는 역할을 하는 함수를 말합니다.

 

버튼을 클릭하면 입력된 데이터를 표시하는 액션 함수를 추가해보도록 하겠습니다.

 

 

1. 액션 함수 추가 - Button

액션 함수를 추가하고자 하는 객체, 버튼(Button)을 '마우스 오른쪽 버튼'으로 선택한 후, '뷰 컨트롤러(View Controller) 클래스 맨 마지막 부분'에 추가해주세요.

 

정리를 하면,

1. 객체를 마우스 오른쪽 버튼으로 선택하고 드래그 한다

2. 뷰 컨트롤러 클래스 선언문 맨 마지막 영역에 추가(일반적으로 클래스 맨 마지막 부분에 추가함)

 

 

2. 액션 함수 연결 설정 - Button

액션 함수를 추가하시면 위와 같이 연결 설정 창이 열립니다. 제일 상단에 있는 Connection이 'Action'으로, 액션함수로 설정되어 있는 것을 확인해주세요. 그런 다음 NameType을 설정해주시면 됩니다.

 

 

Name은 원하시는 대로 편하게 설정해주시면 됩니다. 저는 'btn_send'라고 설정했습니다.

[Type : UIButton]으로 설정하고 나서 [Connect]를 눌러주세요.

 

 

3. 액션 함수 소스 코드 - Button

액션 함수가 추가되면 클래스 맨 마지막 부분에 액션함수 소스코드가 추가된 것을 확인할 수 있습니다.

@IBAction func btn_send(_ sender: UIButton){
}

액션 함수의 각각의 내용이 의미하는 부분에 대해서는 아래에서 좀 더 자세히 알아보도록 하겠습니다.

 


 

먼저, 버튼을 클릭해서 기존에 입력된 텍스트 내용을 가지고와서 표시하는 액션 함수를 만들어보도록 하겠습니다. 위에서 액션함수를 추가했기 때문에 지금부터는 어떻게 동작할 것인지 코딩을 해보겠습니다.

 

 

위와 같은 화면에서 Text Field에 텍스트를 입력하고 '확인' 버튼을 누르면 '오늘 날씨 어때?'의 텍스트가 입력한 텍스트로 바껴서 표시되는 화면을 만들어보도록 하겠습니다.

 

 

1. ViewController.swift 열기

내비게이터 영역에 있는 프로젝트 파일 중에서 [ViewController.swift] 파일을 열어주세요. 그럼 스토리보드에서 추가한 아웃렛 변수와 액션함수 소스코드가 보여집니다.

 

 

2. 액션 함수 동작 구현

위에서 추가한 Button의 액션 함수 안에서 이제 동작을 구현하기 위해 필요한 코딩을 해보겠습니다.

 

label_weather : '오늘 날씨 어때?' 텍스트가 저장되어 있는 아웃렛 변수

text_weather : 날씨를 입력할 수 있는 텍스트 필드 아웃렛 변수

btn_send : 버튼을 클릭했을 때 텍스트를 변경해서 표시할 액션 함수

 

@IBAction func btn_send(_ sender: UIButton){
	label_weather.text=“Weahter : ”+text_weather.text!
}

btn_send 액션 함수 안에 [ label_weather.text=“Weahter : ”+text_weather.text! ] 구문을 추가했습니다.

label_weather.text : label_weather 객체의 텍스트

text_weather.text : text_weather 객체의 텍스트

"Weather : "+text_weather.text : Weather와 text_weather 객체의 테스트의 문자열을 합한다는 의미

 

정리를 하자면,

label_weather 텍스트를 Weather : text_weather 텍스트로 변경하겠다는 의미입니다.

 

 

3. 시뮬레이터로 동작 확인

동작 구현 코딩까지 완료하고 나서 '시뮬레이터'로 확인해보면 위와 같이 액션함수가 잘 동작하는 것을 확인할 수 있습니다. 오른쪽 이미지와 같이 'Weather : 비...' 이렇게 표시가 되는 것은 해당 영역의 공간이 좁아서 줄임말로 표시되는 것으로, 해당 Label의 영역을 넓혀주면 올바르게 보여집니다.

 


 

: 액션 함수(Action Function) 문법

@IBAction func btn_send(_ sender: UIButton){
}

상단에서 보았던 것과 같이 액션 함수를 추가하게 되면 위와 같은 액션 함수 소스코드가 생깁니다. 소스코드에서 각각의 키워드가 무엇을 의미하는지 알아보도록 하겠습니다.

 

- @IBAction

 : @IBAction으로 정의된 함수를 액션함수라고 함.

  객체의 이벤트를 제어하기 위해서 사용함.

  예를 들면, 버튼을 눌렀을 때 이벤트나 특정 이벤트가 발생했을 때의 작업을 수행하기 위해서 사용함.

 

- func btn_send

 : func 키워드는 함수를 선언할 때 사용하는 키워드.

  func 키워드를 사용해서 함수를 선언하고 액션 함수의 이름을 입력해서 액션 함수를 선언함.

 

- (_ sender: UIButton)

 : 액션 함수가 실행될 수 있도록 이벤트를 보내는 객체를 나타냄.

  버튼(Button) 객체를 클릭했을 때 이벤트가 발생할 수 있도록 하기 위해서 UIButton 클래스 타입을 선언함.