Delegation, didSet, Single-path UI
User Interaction (사용자 인터렉션)
- 사람이 어플을 이용하며 서로 상호작용을 하는 것
- iOS에서는 크게 3가지 방법으로 나뉜다.
1. IBAction
2. Callback Function
3. Delegation
Delegation
1. IBAction
2. Callback Function
3. Delegation
키보드로 문자가 입력되는 경우를 통해 delegation이 무엇인지 살펴보자.
IBAction
과 같이 텍스트 필드 자체를 메서드에 연결하는 것이 아니라,View Controller
전체에 연결한다.- 이 때,
View Controller
는 텍스트 필드의 위임자 역할을 한다. (Delegate)
// UITextFieldDelegate를 UIViewController 클래스에 연결한다.
class ViewController: UIViewController, UITextFieldDelegate {
...
}
- Storyboard에서
View Controller
를delegate
와 연결해준다.
- 텍스트 필드의 위임자로서
View Controller
에서 다양한 callback 함수를 사용할 수 있다.
// 다양한 callback 함수들 중 하나이다.
// 사용자가 엔터를 눌렀을 경우 함수가 실행됨.
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
// 사용자가 엔터를 눌렀을 때 실행되는 로직 작성
...
return true
}
Property observer
- 해당 프로퍼티가 바뀔 때마다 실행되는 코드
didSet
mode
라는 프로퍼티가 있다고 가정해보자.
var mode: Mode = .flashCard
- property observer인
didSet
블럭을 추가한다.
mode
프로퍼티의 값이 변경될 때 마다, didSet
내부에 있는 updateUI()
메서드가 실행된다.
var mode: Mode = .flashCard {
didSet {
updateUI()
}
}
Single-path UI
- UI가 변경되는 코드를 한 곳(ex. 하나의 메서드)에 모아놓는다.
- UI 관련 버그가 방지되고, 코드를 이해하기 쉬워진다.
Author And Source
이 문제에 관하여(Delegation, didSet, Single-path UI), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@j00hyun/Delegation-didSet-Single-path-UI
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
mode
라는 프로퍼티가 있다고 가정해보자.var mode: Mode = .flashCard
didSet
블럭을 추가한다.mode
프로퍼티의 값이 변경될 때 마다, didSet
내부에 있는 updateUI()
메서드가 실행된다.var mode: Mode = .flashCard {
didSet {
updateUI()
}
}
- UI가 변경되는 코드를 한 곳(ex. 하나의 메서드)에 모아놓는다.
- UI 관련 버그가 방지되고, 코드를 이해하기 쉬워진다.
Author And Source
이 문제에 관하여(Delegation, didSet, Single-path UI), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@j00hyun/Delegation-didSet-Single-path-UI저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)