Toy Project/iOS Application 쌩기초

1. ViewController: 스크린 하나를 관리함

개발자킹콩 2021. 1. 28. 01:50

우리가 게시판을 만든다고 하고 게시판리스트와 게시판상세페이지 이렇게 두개의 스크린이 있다고 하면

우리는 두개의 ViewController가 필요하다.

(페이지가 복잡해지면 하나의 스크린에 여러개의 ViewController를 사용하기도 함)

 

ViewController는 2가지로 구성된다.

  • 페이지를 디자인하는 파트
  • Storyboard와 연결되어 있는 코드파트로 구성된다.

 

그렇다면 ViewController는 무엇을 하는 것일까?

쉽게 설명하면 우리는 StoryBoard에 원하는 object library를 사용해서 적절한 디자인을 할 것이다.

그러면 버튼(레이블 등)은 지금까지 아무것도 아닌 상자일 뿐이다.

그런데 이 버튼을 눌렀을 때 어떤 반응이나 실행이 되도록 우리가 코드를 짜게 되는데,

그것이 ViewController이다.

페이지가 있을 때 각각의 그냥상자(레이블, 버튼, 여러 View)들에 생명을 불어 넣듯이 ViewController 클래스에 기능구현을 하는 구조이다.

이 연결되어 있는 코드들은 ViewController.swift에 존재한다.

 

이 View를 관리하는게 ViewController이라고 했는데  

view에서 폰모양 위에 중지버튼 비슷한거를 누르고 오른쪽 상단에 있는

Identity inspector을 선택하면 ViewController이 연결됨을 확인할 수 있다.

여기서 class 이름을 지정된 ViewController 코드가 보여지게 된다.

 

 

 

버튼에 기능을 부여하자

object library(+버튼)을 누르면 button이 있다.

버튼을 클릭한 상태에서 컨트롤을 누르고 클릭을 하면 선이 나오는데

이 선을 코드라인에 위치하면 insert Action, Outlet, or Collection이 나오고

클릭을 놓으면 여기라인에 Connetion을 연결하는데

Connection type가 

클릭을 하면 무엇인가를 하는 Action 인지

View를 연결하는 Outlet 인지를 정하게 된다.

우리는 button클릭 시 무엇인가 하기를 원하니깐 Action으로 설정한다.

이름은 hello로 설정하고 Touch Up Inside는 Touch를 했을때 무엇이 실행된다.

연결하게 되면 hello라는 function이 생성된다.

여기에 print hello를 하게되면 view가 아닌 xcode의 출력창에서 hello가 출력된다.

 

 

정리하면

ViewController의 개념을 배웠고, xcode에서 ViewController가 어떻게 View와 코드가 구성되고 연결되어 있는지 보았다.

storyboard에서 ViewController가 있고, 이건 껍데기다. 

내부로직이 연결되기 위해서는 우측상단의 identity inspector을 클릭하여 Custom class에 우리가 직접 작성한 코드를 연결시켜 주는 것이다. 

그럼 해당 ViewController(코드)는 View(화면)과 연결된 것이다.

이제 버튼이 같은 것이 view 변경(outlet)하든, action 취하든 ViewController 함수로 지정만 해주면 기능을 수행하게 된다.