본문 바로가기

Swift55

#5. Alert Alert를 구현하기 위해서는 다음과 같은 단계가 필요하다. AlertController 타입 변수 생성 AlertAction 타입 변수 생성 AlertController.addAction(AlertAction) self.present()로 alert 표시 우선, UIAlertController 변수를 생성한다. let alert = UIAlertController(title: nil, message: "메시지", preferredStyle: .alert) preferredStyle은 alert, actionSheet 두 가지가 존재하며 각각 다음과 같이 표시된다. 다음으로 UIAlertAction 변수를 생성하여 AlertController에 액션을 추가한다. 추가한 액션 수에 따라 Alert의 형태가.. 2020. 4. 18.
#4. Delegate Pattern Delegate Pattern은 다른 곳에 실제로 구현할 내용을 맡겨 놓고 규격만 정해 전달하는 패턴을 의미한다. 규격은 protocol을 이용해 정의할 수 있는데, 이는 자바의 인터페이스와 유사하다고 볼 수 있다. 다음과 같이 스토리보드를 구성한다고 할 때, Button을 통해 이동한 두번째 뷰의 텍스트 필드에 입력한 내용이 첫번째 뷰의 레이블에 나타나도록 구현하고자 한다. 이렇게 여러 뷰가 있을 때 하나의 뷰에서 다른 뷰로 데이터 전달이 필요할 때 사용자가 직접 델리게이트를 정의하여 그 기능을 구현할 수 있다. 우선, 입력된 데이터를 불러오기 위한 메서드가 포함된 델리게이트를 정의한다. protocol InputData { func load(_ text: String) } 두번째로, 델리게이트 변수를.. 2020. 4. 18.
#3. Gesture 어플리케이션의 제스처는 여러 종류가 있으며, 각 제스처에 따라 화면에서 어떻게 반응할지를 지정해줄 수 있다. 각 제스처는 UIGestureRecognizer를 이용하여 제스처를 다룰 수 있다. 이 글에서는 Swipe를 예시로 다루고자 한다. GestureRecognizer를 사용하기 위해서는 viewDidLoad() 메서드 내에 1) 해당 제스처에 맞는 recognizer를 선언하고, 2) View Controller에 GestureRecognizer를 추가한 다음, 3) 제스처 사용시 실행되는 액션 메서드를 선언하면 된다. Swipe의 경우, let left = UISwipeGestureRecognizer(target: self, action: #selector(mvLeft)) left.directio.. 2020. 4. 14.
#2. Unwind Segue 네비게이션 컨트롤러를 다루게 되면 여러 뷰가 쌓이게 되는 경우가 있다. 직전의 뷰로 돌아가기 위해서는 자동으로 생성되는 Back 버튼을 이용하면 되지만 바로 첫번째 뷰로 이동하기 위해서는 코드 상의 간단한 작업이 필요하다. 바로 unwind segway이다. 다음과 같은 상황이 있다고 가정해보자. 이렇게 여러 뷰가 쌓여있는 상황에서, 세번째 뷰에서 두번째 뷰로 이동하기 위해서는 Back 버튼(1)을 활용하면 된다. 첫번째 뷰로 이동하기 위해서는 이전의 첫번째 뷰와 두번째 뷰에서 그랬던 것 처럼 화면 화면 중앙의 버튼(2)을 첫번째 뷰와 연결하여 새로운 세그웨이를 생성하면 될 것처럼 보인다. 그러나, 이러한 방법은 이미 쌓여있는 뷰 위에 첫번째 뷰를 한번 더 푸시하는 방식이 되어버린다. 이전에 쌓여있던 모.. 2020. 4. 14.
#1. ViewController LifeCycle iOS 어플리케이션은 여러 ViewController로 구성되어 있으며 각각의 VC는 LifeCycle을 지니고 있다. ViewController LifeCycle은 화면에 나타나는 것에서 시작하여 사라지기까지의 과정을 의미하며, 이 사이클을 잘 이해해야만 앱의 전체적인 실행 흐름과 레이아웃 구성을 파악할 수 있다. ViewController의 생명 주기 단계는 다음과 같다. 1) awakeFromNib() 2) viewDidLoad() 3) viewWillAppear() 4) viewDidAppear() 5) viewWillDisappear() 6) viewDidDisappear() 7) deinit 각 메서드의 호출 시기 및 특징은 다음과 같이 정리할 수 있다. 1) awakeFromNib() Nib.. 2020. 4. 14.