반응형
Swift one IBAction for multiple buttons
- Swift에서 하나의 IBAction에 다수의 Button을 등록하는 방법에 대해서 설명합니다.
- 비슷한 유형의 작업을 하는 버튼에 대해 하나씩 @IBAction을 만드는 것이 비효율적이라고 생각되시면 해당 방법을 사용해보세요.
- 해당 방법보다 더 좋은 방법이 있을수도 있으니 참고만 해주시면 감사하겠습니다.
방법
- @IBAction 정의하기
- Interface Builder 에서 연결하기
- 결과값 확인해보기
1. @IBAction 정의하기
View Controller에 아래와 같이 정의하기
@IBAction func btnNumber(btnN : UIButton) {
}
2. Interface Builder 에서 연결하기
- Main.storyboard 클릭
- View hierarchy 보기 : 컨트롤러 및 뷰, 버튼의 계층이 보이는 화면 (안보이면 왼쪽 하단의 Show Document Outline 클릭)
- View Controller 를 오른쪽 버튼 클릭
- Received Actions 섹션에 보이는 btnNumberWithBtnN 의 오른쪽 동그라미 가져대면 + 로 변경됨 이름은 다음과 같이 정의됩니다 : 코드에서 정의한 func이름 + With + 받는변수명(?)
- +를 클릭한 상태에서 등록하려는 Button에 드래그하기
- 4,5번 반복
3. 결과값 확인해보기
btnN.titleLabel.text 를 이용해 print OR Label에 저장하여 확인해보기
Before Code
@IBAction func btn0(_ sender: UIButton) {
resultDisplay.text = resultDisplay.text! + "0"
}
@IBAction func btn1(_ sender: UIButton) {
resultDisplay.text = resultDisplay.text! + "1"
}
@IBAction func btn2(_ sender: UIButton) {
resultDisplay.text = resultDisplay.text! + "2"
}
@IBAction func btn3(_ sender: UIButton) {
resultDisplay.text = resultDisplay.text! + "3"
}
@IBAction func btn4(_ sender: UIButton) {
resultDisplay.text = resultDisplay.text! + "4"
}
@IBAction func btn5(_ sender: UIButton) {
resultDisplay.text = resultDisplay.text! + "5"
}
@IBAction func btn6(_ sender: UIButton) {
resultDisplay.text = resultDisplay.text! + "6"
}
@IBAction func btn7(_ sender: UIButton) {
resultDisplay.text = resultDisplay.text! + "7"
}
@IBAction func btn8(_ sender: UIButton) {
resultDisplay.text = resultDisplay.text! + "8"
}
@IBAction func btn9(_ sender: UIButton) {
resultDisplay.text = resultDisplay.text! + "9"
}
After Code
@IBAction func btnNumber(btnN : UIButton){
let button = btnN.titleLabel?.text
resultDisplay.text = resultDisplay.text! + button!
}
반응형
'Swift' 카테고리의 다른 글
여러 타입을 저장하기 위한 enum 만들기 (0) | 2018.11.02 |
---|---|
do-try-catch 유닛테스트 하기 위한 코드 (0) | 2018.11.02 |
인증서 p12 -> pem 변환 방법 (바이두 - 푸시서비스에 사용) (0) | 2018.11.02 |
iOS 배포 이미지 준비 (0) | 2018.11.02 |
iOS11 녹화기능 감지 (0) | 2018.11.02 |