Today I Learned

20210722 BMI calculator project-3

돌맹이시터 2021. 7. 23. 00:51

https://dmsitter.tistory.com/122

 

Swift - Class & Inheritance

클래스는 구조체와 마찬가지로 청사진을 정의하는 하나의 방법이다. property와 method들을 설계할 수 있도록 하고, init()을 통해 어플을 실행했을 때 클래스를 실제 객체로 초기화할 수 있다. 클래

dmsitter.tistory.com

 

https://dmsitter.tistory.com/123

 

swift - Struct vs Class

swift에서 struct와 class의 차이점에 대해 정리한다. 가장 큰 차이점은 superclass로부터 상속받을 수 있다는 점이 있지만, 그것과는 별개로 superclass로부터 상속받지 않는 기본 class와 struct의 차이점을

dmsitter.tistory.com

 

 

지금까지는 한 화면에서 모든 것을 다뤘었었는데

지난번에 만든 bmi value를 버튼을 클릭했을 때 2번째 화면에 나타나게 하려고 한다.

 

먼저, 두 번째 화면에 대한 view controller file을 만들어야 한다.

'Controllers' folder 우클릭 - new file - swift file

'SecondViewController.swift'를 만든다.

 

 

처음 프로젝트를 만들 때 ViewController.swift에는 기본적으로 미리 입력되어 있는 코드들이 있지만,

새로 만든 SecondViewController.swift에는 아무런 코드도 없기 때문에 수동적으로 코드를 작성해줄 것이다.

 

먼저 ViewController.swift를 살펴보면 class ViewController: UIViewController {} 가 존재하고,

우리는 그 클래스 안에서 코드를 작성했던 것을 확인할 수 있다.

 

따라서, 먼저 'SecondViewController' 클래스를 만들어줄 것이다.

ViewController class가 UIViewController로부터 상속되어서 만들어진 클래스인 것을 감안하여

새로운 클래스도 동일하게 상속되도록 만들 것이다.

 

 

SecondViewController class를 만들려고 했을 때

(Use of undeclared type 'UIViewController') 라는 경고메시지가 떴다.

 

 

ViewController.swift 에서는 import UIKit 이라는 코드를 통해

UIKit 이라는 프레임워크를 가져왔고,

SecondViewController.swift 에서는 import Foundation 이라는 코드를 통해

Foundation이라는 프레임워크를 가져왔다.

 

여기서 새롭게 알게되었던 건

Foundation 프레임워크를 통해 대부분의 스위프트의 기능을 사용할 수 있지만, 

UILabel, UISlider, UIViewController와 같은 UI로 시작되는 특정한 것들을 사용하고자 한다면

UIKit 프레임워크를 가져와야만 한다는 것이다.

그리고 UIKit 프레임워크 안에는 Foundation의 모든 내용이 포함되기 때문에,

프레임워크를 둘 다 가져올 필요없이 UIKit 하나만 가져오면 된다.

따라서,

새로 만든 파일에 있는 import Foundation 을 import UIKit 으로 바꿔준다.

 

 

그리고 ViewController.swift에 기본적으로 작성되는 코드는

클래스 내부에 있는 viewDidLoad method가 있다.

 

이 코드 또한 수동적으로 작성해준다.

viewdidload만 입력하면 snippet이 나타나며,

코드블럭 내에 super.viewDidLoad() 코드도 추가해주면 된다.

 

 

 

 

여기까지만 작성해주면

두 번째 화면을 다룰 SecondViewController.swift의 틀이 완성된다.

 

 

 

 

'Today I Learned' 카테고리의 다른 글

20210727  (0) 2021.07.28
20210725 BMI calculator project -4  (0) 2021.07.26
20210715 BMI caculator project -2  (0) 2021.07.17
20210713 BMI calculator project -1  (0) 2021.07.15
20210712 Destiny project -3  (0) 2021.07.13