IOS

    IOS - ViewController의 생명주기(Life Cycle)

    ViewController의 생명주기(Life Cycle) IOS에서 화면을 구성하는 요소인 ViewController가 나타나서 사라지기까지의 주기를 의미한다. 그림을 보면 will과 did가 반복적으로 사용된다 will은 ~할 것이다. 라는 뜻을 가지며 did는 ~했다. 라는 의미를 가진다. 이 주기들의 순서는 다음과 같다. ->loadView(뷰 로드) -> viewDidLoad(뷰가 로드되었다) -> viewWillAppear(뷰가 나타날 것이다) -> viewDidAppear(뷰가 나타났다) -> viewWillDisappear(뷰가 사라질 것이다) -> ViewDidDisappear(뷰가 사라졌다) -> viewDidUnload(뷰가 언로드 되었다) 1. override func loadVie..

    IOS - Navigation Bar Title 변경하는 방법

    1. Navigation Controller에 embed 했을 때 //1 title = " " //2 self.title = "" //3 self.navigationItem.title = "" //4 self.navigationController?navigationbar.topItem.title = " " 2. Navigation Controller와 Tab Bar Controller가 함께 1. self.navigationItem.title= " " 2. self.navigationController?.navigationBar.topItem?.title = " " 3. Navigation Bar만 추가했을때 (Navigation Controller로 생성된 bar가 아닐경우) //Outlet변수로 추가..

    IOS - PickerView

    피커뷰를 사용하려면 컬럼의 갯수에 상관없이 UIPickerViewDataSource, UIPickerViewDelegate라는 프로토콜을 채택해야함. 먼저 UIPickerViewDataSource를 채택한 뷰 컨트롤러는 자기 자신을 피커뷰의 datasource로 등록해야한다. 뷰 컨트롤러가 피커뷰에 표시할 데이터와 UIPickerView사이의 다리 역할을 한다. //피커뷰의 열 개수를 넘김 func numberOfComponents(in pickerView: UIPickerView) -> Int { return pickerViewCnt } //피커의 항목 개수를 넘김 func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component..

    IOS - 사용자에게 알람 승인을 구하는 법.

    우리들은 앱을 처음 설치하고 열었을 때 "이 앱에서 오는 알림을 받으시겠습니까?" 하는 별도에 Alert을 기억 할텐데 그런 식으로 만약에 사용자가 허용을 하지 않으면 우리가 잘 설정해 놓은 이런 알람도 사실상 앱에 표현되지 않는다. 어쨋든 이러한 허용을 받아야만 보낼 수 있는 구조로 되어있기 때문에, 사용자의 승인을 구하는 코드를 추가해야한다. AppDelegate.swift파일에서 UserNotifications를 추가해준다. //AppDelegate.swift import UIKit import UserNotifications 그리고 didFinishLaunchingWithOption에서 구현한다. class AppDelegate: UIResponder, UIApplicationDelegate { ..

    IOS - 화면 터치 시 키보드 내려가기

    TextField를 터치해서 키보드가 활성화 되고, 아무 처리를 하지 않으면 키보드가 사라지지 않아서 해당 위치에 있는 버튼들을 사용하기 힘들 때가 있다. return키를 누르면 키보드가 내려가게 할 수도 있지만 일반적으론 그냥 바닥화면을 터치하면 키보드가 내려가게 코딩한다. ViewController 아래에 코드를 추가해주면 화면 터치 시 키보드가 내려간다. 클래스내에 override를 추가해준다. 예) import UIKit class MainVIewController: UIViewController{ override func viewDidLoad() { super.viewDidLoad() } //소스들... //키보드가 내려가게 하는 코드 override func touchsBegan(_ thouc..

    IOS - AutoLayout의 Hugging, Compression Resistance Priority

    Xcode에서 UI컴포넌트들을 클릭하면 Hugging Priority와 Compression Resistance Priority를 설정할 수 있다. Hugging priority는 늘어나는 우선순위 Compression Resistance priority는 줄어드는 우선순위 여러 오브젝트 중 하나가 커져야 하는 상황 -> Hugging priority 여러 오브젝트 중 하나가 작아져야 하는 상황 -> Compression Resistance priority 두 우선순위 모두 크기가 높으면 자신의 크기를 유지한다.

    IOS - UIAlertController 팝업(알림)창

    1. 알람 객체 선언 및 초기화 2. 알람 버튼 만들기 3. 알람 객체와 알람 버튼 연결 4. 화면에 표현 이 순서대로 진행하면 된다. 1. let alert = UIAlertController(title: "성공", message: "회원가입 완료!", preferredStyle: UIAlertController.Style.alert) UIAlertController객체 생성 및 초기화. 2. let okAction = UIAlertAction(title: "확인", style: .default) {(action) in // 버튼을 클릭시 할 작업을 넣는다. return } 예를 들어 버튼을 클릭하면 메인화면을 보여주겠다 라고 할 경우 let okAction = UIAlertAction(title: "..

    Swift - DateFormatter

    DateFormatter는 날짜, 시간 등과 관련된 객체이다. 에를들어 "2020-05-16 11:30" String 형태를 Date 형태로 변환하여 날짜를 계산한다던지, "2020-05-16 11:30" String을 "2020년 05월 15일 오전 11시 30분" 형태로 변환한다던지.. 1. Date를 원하는 형식의 Format로 변환. Date()를 선언하면 현재의 Date를 얻을 수 있다. 이 때 얻은 Date는 "2020-08-13 09:14:48 +0000"이런 형태로 전달받게된다. 원하는 형식으로 바꾸고자 한다면 DateFormatter의 dateFormat이라는 함수를 이용하면 된다. 예) "yyyy-MM-dd HH:mm" -> "2020-03-11 02:52" yyyy: 년도 MM: 월 ..

    IOS - Local Notification

    Local Notification(로컬 알림) - 앱 내에서 자체적으로 만든 특정 메시지를 전달하는 알림 - 사용자의 관심을 끄는데에 기본적인 목적이 있다. - 알림을 재생하거나, 앱 아이콘에 뱃지를 지정할 수 있다. - 예를들어 백그라운드앱은 앱이 특정 작업을 완료할 때 경고를 표시하도록 시스템에 요청을 할 수 있다. - 사용자가 원하는 중요한 정보를 전달하는 방법 중 하나이다. UNNotificationRequest(UN은 User Notification의 약자) Local Notification을 이용하기 위해 UNNotificationRequest를 작성해야한다. UNNotificationRequest을 작성하려면 3가지 내용이 필수적으로 요구가 된다. 1. ID(identifier) - 각각의 ..

    Login

    대부분 앱에서는 사용자의 신원정보를 필요로 하기 때문에 필수적인 기능이라고 할 수 있다. 로그인 기능을 사용하게되면 사용자가 앱 내에서 활동한 기록, 정보들을 각 계정마다 클라우드에 안전하게 보관할 수 있으며, 어느 기기, 어느곳에서 로그인을 하더라도 각 사용자마다 일관성 있는 서비스를 제공할 수 있다.