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 = .flashCarddidSet 블럭을 추가한다.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.)