LocalizedError, 화면전환 방식

Minseong·2022년 2월 25일
0

swift

목록 보기
9/10

LocalizedError

  • 오류에 대한 발생 이유를 설명하는 프로토콜
  • 해당 프로토콜을 준수하고 연산프로퍼티 errorDescription: String?를 정의하면 .localiedDescription사용이 가능
  • localizedDescription: error의 코멘트 역할
  • 예시:
enum JuiceMakingError: Error {
    case outOfStock
}

extension JuiceMakingError: LocalizedError {
    var errorDescription: String? {
        switch self {
        case .outOfStock:
            return "과일재고가 부족해서 제조 불가"
        }
    }
}
print(error.localizedDescription) // 과일재고가 부족해서 제조 불가

화면전환방식


present 방식 : ViewController가 다른 ViewController 호출(present)

  • 다른 ViewController를 Modal로 띄움
  • UIViewController에 정의된 present 메서드 사용
  • 자동으로 돌아올 수 없기 때문에 돌아올 때 dismiss를 해줘야한다! // presentingViewController?.dismiss(animated:)
  • 단점: 화면을 덮기 때문에 여러개일 경우 메모리 풀 가능성 있음
  • modalTransitionStyle: 화면 전환시 어떤방식으로 넘어갈거냐
    • coverVertical 밑에서부터 쭈욱 올라옴
    • crossDissolve 화면이 크로스 되면서 생김 (원래있던 화면이 뒤로 스윽 가지는??)
    • partialCurl 페이지를 넘기듯이 넘어감 (fullScreen일 때만 가능)
    • flipHorizontal 카드를 뒤집듯이 뒤집히면서 나옴

      잘 안쓰는 방법이라고 한다😅;;;

  • Navigation Controller: 계층적 내용을 탐색하기 위한 스택 기반 체계를 정의하는 컨테이너 뷰 컨트롤러
  • NavigationController 사용하여 화면전환
  • NavigationController는 back버튼이 자동으로 생겨서 좋다!
  • Navigation Stack에 쌓임
  • 이 방법으로 화면전환을 하려면 먼저 Navigation Controller를 embed in해줘야함
  • 해당하는 View controller를 누르고 embed in(오른쪽 아래 resolve auto layout issues 옆에서 누르거나, Editor를 통해 하는 방법도 있다)

    NavigationController: 디자인과 관련된 부분x 기능과 관련된 부분
    NavigationController가 처음으로 만나는 ViewController를 root ViewController라고한다

네비게이션 컨트롤러 + Segue

  • 가장 편한 방법?? 스토리보드에서 연결해주면 끝이다;;;
  • 코드를 사용해 연결 하는 방법:
    • ViewController에서 새로운 화면으로 세그 연결
    • Inspector에서 segue의 식별자인 Identifier를 설정
    • 연결을 완료했으면 ViewController.swift로 넘어와 버튼의 액션에 새로운 코드를 추가
    • performSegue(withIdentifier: "showSegue", sender: sender)라는 코드를 추가, 이것은 세그를 실행하는다는 의미, 매개변수로 식별자와 전달자인 버튼을 넣으면 된다
profile
안녕하세요! ios 공부 중인 초보 개발자입니다!

0개의 댓글

관련 채용 정보