'IBOutlet'이란?
IBOutlet(Interface Builder Outlet)은 인터페이스 빌더에서 생성된 UI 요소와 Swift 코드 간의 연결을 나타내는 키워드이다. 스토리보드에서 생성된 UI 요소(ex: 버튼, 레이블, 이미지뷰 등)를 코드에서 참조하고 조작하기 위해 사용된다.
기본적으로, 스토리보드에서 UI 요소를 선택한 후, 해당 요소를 Swift 코드의 클래스 파일에 드래그하면 자동으로 '@IBOutlet'으로 선언된 변수로 연결된다. 이렇게 연결된 변수는 코드에서 UI 요소를 직접 조작하거나 변경할 수 있는 참조가 된다.
@IBOutlet weak var myLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
myLabel.text = "Hello, World!"
}
'IBOutlet'은 변수 앞에 '@' 기호를 붙여서 선언한다. 보통 'weak' 참조로 선언되는데, 이는 메모리 관리 측면에서 순환 참조(circular reference)를 방지하기 위함이다. UI 요소는 스토리보드에서 설정되기 때문에, 'nil' 상태일 수 있으며, 따라서 옵셔널로 선언하는 경우가 많다.
'IBAction'이란?
IBAction(Interface Builder Acton)은 사용자 인터페이스에서 발생하는 이벤트(ex: 버튼 클릭, 슬라이더 값 변경 등)에 대한 액션을 처리하기 위해 사용되는 메서드를 나타낸다. 즉, 사용자의 인터랙션에 반응하는 함수와 인터페이스 빌더의 요소를 연결하는 방법이다.
스토리보드에서 버튼 등 이벤트를 발생시키는 UI 요소를 선택한 후, 이를 Swift 코드로 드래그하면 자동으로 '@IBAction'이 붙은 메서드로 연결된다. 이 메서드는 해당 이벤트가 발생할 때 호출된다. 아래는 스토리보드에서 버튼을 추가하고, 이 버튼이 클릭될 때 실행될 액션을 정의하는 예시이다. 버튼을 클릭했을 때, 레이블의 텍스트를 변경하는 동작을 수행한다.
@IBAction func myButtonTapped(_ sender: UIButton) {
myLabel.text = "Button Clicked!"
}
'IBOutlet'과 'IBAction'의 상호작용
보통 IBOutlet과 IBAction은 함께 사용된다. 예를 들어, UI에서 버튼을 클릭하면 레이블의 텍스트를 변경하는 상황에서 레이블을 IBOutlet으로 연결하고, 버튼의 클릭 액션을 IBAction으로 처리한다.
@IBOutlet weak var myLabel: UILabel!
@IBAction func buttonTapped(_ sender: UIButton) {
myLabel.text = "The button was tapped!"
}
이렇게 하면 UI 요소와 이벤트 핸들링 로직을 코드에서 분리하면서도, UI요소의 상태를 코드에서 제어할 수 있다.
'🔨 개발 > 📱 swift' 카테고리의 다른 글
카카오 로그인 예제를 통한 CocoaPods 설치와 사용 (4) | 2024.08.31 |
---|---|
swift를 이용한 iOS 앱 개발 입문 4: UITextField 사용과 iOS 가상 키보드 높이 감지 (0) | 2024.08.21 |
swift를 이용한 iOS 앱 개발 입문 2: 앱(App), 씬(Scene), 생명주기(Lifecycle) (0) | 2024.08.03 |
swift를 이용한 iOS 앱 개발 입문 1: 각 파일들의 역할 (0) | 2024.08.03 |