새로운 뷰를 나타내기, 값 전달
해당화면에서 CALCULATE 버튼을 누르면 키와 몸무게에 따른 새로운 화면으로 넘어가도록 하고싶다.
먼저 새로운 뷰는 다음과 같이 라이브러리에서 View Controller를 선택해 생성할 수 있다.
지금은 바로 사용하지는 않지만, 새로운 뷰를 생성하려면 어차피 알아두어야 한다.
controller 폴더에 새로운 뷰를 위한 swift파일을 추가하고, 빨간화면에 계산된 bmi가 계산되도록 다음과 같이 작성하였다.
viewDidLoad 함수는 뷰가 처음 보여졌을 때 호출되는 함수이다. label을 하나 만들고, .frame을 통해서 label의 크기를 설정할 수 있다. (0, 0)의 너비 100, 높이 50으로 설정하였다. 그러면 계산된 bmi 값을 어떻게 SecondViewController에 전달할 수 있을 까?
bmi 값을 계산한 ViewController 클래스에서 SecondViewController 인스턴스를 만든다음, bmiValue 프로퍼티에 계산된 Float타입 bmi 값을 문자열로 변환해 삽입해주었다. SecondViewController() 인스턴스인 secondVC를 화면에 나타내려면 present 메서드를 사용하면 된다.
self는 ViewController를 나타내며, secondVC를 화면에 나타내고, animated 를 true로 해놓으면 화면이 부드럽게 전환된다. 화면을 나타낸후 추가로 하고싶은 작업이 있다면 completion에 추가를 해주나, 여기서는 그렇지 않으므로 nil로 설정해준다.
이제 키와, 몸무게를 설정한 후, CALCULATE버튼을 누르면 다음과 같이 bmi값과 함께 화면이 부드럽게 전환된다. 빨간색이라 눈이아프다.