viewDidLoad()에서 Alert을 띄울 수 없다. (viewDidLoad는 화면을 띄우기 직전이라고 생각하면 됨, viewDidAppear에서 호출하기)
화면을 항상 현재 화면에서 present, push 하는 것은 아니다. 현재 window의 rootViewController에서 띄우는 경우도 많다.
SnapKit
make
remake
update
셀 레이아웃(Cell Layout)
셀 레이아웃을 잡을 때는 contentView위에 구현해주자.
제스처
하나의 객체에 등록할 수 있는 제스처는 1개이다. 2개 이상 들어갔을 때 에러가 발생할 수 있다. (- responder chaining)
기본적으로 cell - select (gesture) 들어가 있는데 여기에 제스처를 넣어주면 에러가 발생할 수 있다.
스크롤 뷰에도 기본적으로 pinch와 swipe 제스처가 있다. 여기에 다른 제스처를 또 넣어주면 에러가 발생할 수 있다.
DataBase
데이터를 저장한 파일들의 집합체
UserDefaults: Apple이 제공되는 경량화된 DB
Realm: 일기 앱, 메모 앱
DBMS
데이터베이스를 관리하기 위한 시스템 소프트웨어
RDBMS
테이블 구조
테이블 안에다가 데이터를 넣어두는 구조
엑셀 테이블을 하나 만든다라고 생각하면 편함
Terms
Schema/Table
Column(열 하나)
Record(행 하나)
PK, FK, Unique Key
데이터 갱신 문제
present를 overCurrentContext, overFullScreen로 실행하고, dismiss하면 viewWillAppear가 실행되지 않는다.
// A.swift
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print(#function)
// 화면 갱신은 화면 전환 코드 및 생명 주기 실행 점검이 필요하다.
// present, overCurrentContext, overFullScreen > viewWillAppear가 실행되지 않는다.
// RootView가 그대로 남아있기 때문이다.
}
...
@objc func plusButtonClicked() {
let vc = WriteViewController()
vc.modalPresentationStyle = .fullScreen
present(vc, animated: true)
}
Notification.Name
awakeFromNib, init
특성에 맞게 어느 것이 호출되는 것이 더 적절한지 확인해본다.
화면을 띄울 때
SnapKit
셀 레이아웃(Cell Layout)
셀 레이아웃을 잡을 때는 contentView위에 구현해주자.
제스처
DataBase
데이터를 저장한 파일들의 집합체
DBMS
RDBMS
Terms
데이터 갱신 문제
present를 overCurrentContext, overFullScreen로 실행하고, dismiss하면 viewWillAppear가 실행되지 않는다.
Realm