- Today
- Yesterday
- Total
메이쁘
[Swift] @IBOutlet 과 @IBAction 의 의미 및 생성 방법. 본문
안녕하세요.
xcode로 iOS를 개발하거나 소스코드를 보다보면
@IBAction func hello() {}
@IBOutlet weak var textField : TextField?
이런 함수 / 변수 들이 많이 보이실텐데요.
맨 앞에 있는 IBAction 및 IBOutlet 에 대해 개념을 확실히 알고 넘어가려고 포스팅하게 되었습니다.
깊게 들어갈 순 있지만, 핵심과 사용 방법만 짚고 넘어가는 포스팅입니다!
*** 버전 체크 하고 진행하세요!
- Swift : 5
- XCode : 11.5
- iOS : min 9.0
IBOutlet ?
- StoryBoard (Objective-C 일 경우, 헤더파일이 되겠죠?) 상에 선언한 View 객체를 Interface Builder(IB) 가 알아볼 수 있게 만드는 것
- 안드로이드(Kotlin 말고 Java의 경우에!!) 의 경우에도, layout.xml에 TextView 를 선언했다고 바로 코드상에서 해당 객체를 사용할 수 있는 것이 아니라 TextView textView = findViewById(R.id.textView) 를 통해 xml view 객체와 코드상의 변수를 연결해야 합니다.
이 것과 같이 코드 상에서 StoryBoard 에 만든 View 객체를 사용하기 위해 연결해주는 역할을 한다고 보시면 됩니다.
그럼, 해당 변수를 만들어 storyboard 와 연결시켜 보겠습니다.
- storyBoard 를 들어가시면, 위 화면과 같이 나올텐데요. 빨간색으로 동그라미 친 부분을 위에서부터 순서대로 누르세요.
- Assistant 클릭
- 그럼 화면이 두 개로 분할되면서, 왼쪽에는 storyboard 가 있고 오른쪽에는 ViewController 코드가 있게 됩니다.
- 그럼, 스토르보드 상에서 넣은 button(다른 것도 상관없음) 을 마우스 오른쪽 버튼 클릭하면 위와 같이 선택 목록이 나옵니다.
- 여기서, Referncing Outlets -> New Referencing Outlet 옆 동그라미를 누른 후 우측 코드로 드래그 앤 드롭을 합니다.
- 그럼 변수 선언이 완료됩니다!
IBAction ?
- IBOutlet이 스토리보드 상에 선언한 View 객체를 가리키는 변수 라고 한다면, IBAction은 스토리보드 상에 선언한 View 객체가 특정 이벤트가 발생했을 경우 호출되는 함수 라고 생각하면 됩니다.
- Action 은 취해야 할 행동 이니까, 해당 View가 특정 이벤트를 발생시켰을 경우 취하는 행동 과 같은 의미입니다.
- IBAction을 추가하기 위해서는 IBOutlet과 같이 원하는 이벤트가 보이면 우측 코드로 드래그 앤 드롭 하면 끝!
@IBOutlet 선언 시 var 앞에 weak 가 같이 생기는데요.
이 weak는 weak reference(약한 참조) 라는 의미를 갖고 있습니다.
이에 대해선 다른 포스팅을 참고해주세요!
감사합니다.
'Language > Swift' 카테고리의 다른 글
[Swift] GCD 와 DispatchQueue(Serial, Concurrent) 에 대한 간단 명료 설명! (0) | 2020.06.09 |
---|