Patrick's 데이터 세상
iOS - 앱 구조와 스토리보드 본문
앱을 구성하는 객체
시스템 객체
자동 생성
시스템 관련 동작
코드 수정 불가
UIApplication, UIWindow
커스텀 객체
업무 관련 동작 작성
개발자 작성, 수정 가능
ApplicationDelegate, ViewController, Model
애플리케이션 객체
시스템 객체 : 애플리케이션(UIApplication)
앱의 시작과 함께 자동 생성
유일한 객체 존재
객체 얻기
역할
애플리케이션의 고수준 행위
컨트롤 객체에서 이벤트 처리 배치
푸쉬/로컬 노티
앱 URL과 앱 전환
애플리케이션 델리게이트
UIApplicationDelegate 프로토콜
프로젝트 생성 시 AppDelegate 클래스
애플리케이션 델리게이트 객체도 유일하게 존재
역할
앱의 상태 변환
푸쉬/로컬 노티 다루기
URL을 이용한 앱 오픈
앱 공유 데이터 저장 용도로 사용 가능
윈도우 : UIWindow
시스템 객체
화면에 출력되는 뷰를 조율
대부분 1개의 윈도우 객체, 외부 스크린이 있으면 추가 윈도우 객체
루트 뷰 컨트롤러 : 윈도우에 뷰를 제공하는 뷰 컨트롤러
앱의 주요 상태
동작 안 함(Not running)
포그라운드(Foreground)
백그라운드(Background)
서스펜디드(Suspended)
포그라운드
앱이 화면에 나타나고 동작 중인 상태
Active
사용자 이벤트 전달
Inactive
사용자 이벤트 전달 안됨
다른 코드 동작 중(예: 컨트롤 센터, 알림 센터)
포그라운드와 백그라운드 전환 중인 상태
백그라운드
사용자가 홈 버튼을 눌러서 화면에 앱이 보이지 않는 상태
백그라운드 동작 : 음악 재생, GPS, voip 등 제한된 동작 수행 가능
서스펜디드 상태로 전환되는 중간 단계로 앱 상태 저장
서스펜디드
메모리에 존재하지만 동작 중이 아닌 상태
앱의 상태 전환
UIApplicationDelegate
* 첫 구동
func applicationDidFinishLaunching(_ application: UIApplication)
* 포그라운드(foreground)
func applicationDidBecomeActive(_ application: UIApplication)
* 백그라운드(background)
func applicationDidEnterBackground(_ application: UIApplication)
* 포그라운드, 백그라운드 상태 전환 과정, Inactive
func applicationWillEnterForeground(_ application: UIApplication)
func applicationWillResignActive(_ application: UIApplication)
* 앱 종료(Suspended 상태에서 종료시 동작 안함)
func applicationWillTerminate(_ application: UIApplication)
스토리보드
개별 씬
뷰 구조와 속성
리소스
상호 동작
씬 전환
세그웨이(segue)
씬 식별 정보
뷰 컨트롤러의 식별 인스펙터
Class : 뷰 컨트롤러의 클래스
Storyboard ID : 뷰 컨트롤러의 ID
Restoration ID : 앱의 상태 저장/복원 시 사용 ID
Label : 스토리보드 내 표시
스토리보드에 작성하는 것들
시작 씬 → 세그웨이
시작 씬
스토리보드 내 시작 씬
하나의 스토리보드에서 유일
화살표로 씬 지정
시작 씬이 없으면 검은 화면과 경고 문구
세그웨이(segue)
씬과 씬의 연결 정보
씬의 전환 정보
1개의 스토리보드로 작업하기
스토리보드 분리하기
스토리보드 레퍼런스 : 다른 스토리보드 내 객체 참조
'Programming > Swift' 카테고리의 다른 글
IOS - Realm 모바일 데이터베이스 (0) | 2020.06.24 |
---|---|
iOS - 씬 구조와 모달 (0) | 2020.06.24 |
iOS - 목록형 씬 (0) | 2020.06.24 |
iOS - 스크롤 뷰 (0) | 2020.06.23 |
iOS - 다이얼로그와 피커 (0) | 2020.06.23 |