Notice
Recent Posts
Recent Comments
Link
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

차근차근

[Swift] 네비게이션바, 화면이동 본문

대학교/iOS

[Swift] 네비게이션바, 화면이동

SWKo 2020. 2. 2. 18:49

0. Storyboard Entry Pointer

  • View Controller 클릭 후 오른쪽 상단 속성 보여주는 것을 클릭하면 Is Initial View Controller라는 항목이 존재한다. 저것을 체크하면 스토리보드의 Entry Pointer가 생기고 체크해제하면 사라진다.
  • Entry Pointer는 화면에 진입했을 때 가장 처음 보여지는 화면을 가리키는 것이다.


1. 네비게이션바, 화면이동

  • 기존의 화면을 지운 후 Navigation Cotroller를 추가해준다.

  • 오른쪽의 Root View Controller Scene을 삭제한다.
  • Navigation Controller의 Is Initial View Controller 버튼을 누른다.



  • Navigation Controller에게 관장당할 루트 컨트롤러를 만든다.
  • View Controller를 클릭해서 추가한다.
  • 그 후 Ctrl+드래그를 통해 아래 그림과 같이 한다.

  • 그렇게 되면 다음과 같은 화면이 뜨고 root view controller를 클릭해준다.

  • 아래와 같이 사이에 연결고리가 생긴다.

  • Move 버튼을 만들고
  • View Controller를 하나 더 추가해준다.

  • 두번째 Controller의 Custom Class 를 ViewController로 설정해준다.

  • Ctrl+드래그로 적절한 위치에 갖다 놓는다.

  • 화면 이동에 사용할 버튼 액션을 만든다.

  • 새로운 swift 파일 하나를 만들어준다.
  • DetailController라는 이름을 붙여준다.

  • 새로 만든 파일을 마지막에 있는 화면과 연결시켜준다.
  • 그 후 오른쪽 화살표를 누른 후 잘 연결되었는지 확인한다.

  • 다시 Move 버튼이 있는 ViewController로 돌아와서 Editor 두개를 띄워놓는다.

  • 화면이동방법
    1. 스토리보드에서 이동할 컨트롤러를 찾는다.
      • 찾음을 당할 컨트롤러에 Identity를 부여한다.(고유한 Id 값을 넣으면 어디서든 찾을 수 있다. 그냥 클래스이름과 똑같이 설정해주면 편하다.)

2. 이동할 컨트롤러로 이동한다.

 

  • if let controller 구문은 옵셔널 바인딩이라고 하며 값이 있을 경우 실행한다는 의미이다.
  • let은 상수, var은 변수앞에 붙는다.
  • 상수 controller에다가 "DetailController"의 ViewController를 찾아서 넣고
  • 넣은 controller를navigation에 다시 넣는다. animated 효과는 true로 해준다.
  • 다음은 실행시킨 화면이다.

 

  • 위 화면에서 Move 버튼을 누르면 아래 화면으로 넘어갈 수 있다.
  • 아래 화면에서 왼쪽 Edge를 오른쪽으로 밀거나 Back 버튼을 눌러 위에 화면으로 돌아갈 수 있다.

2. 첫 화면 설정

  • 앱을 실행했을 때 가장 먼저 뜨는 화면을 설정하고 싶으면 다음과 같이 Main임을 확인하고 Entry Pointer도 설정이 제대로 되어있는지 확인해야한다.

Comments