본문 바로가기

IOS32

xib의 이름으로 화면전환하기 (present) 먼저 생성한 xib 의 File's Owner에 들어가 Class명을 ViewController와 클래스명을 일치시켜준다. 내 파일에서의 클래스명과 xib파일이름은 AAViewController으로 동일하게 맞췄다. let vc = AAViewController(nibName:"AAViewController", bundle: nil) vc.modalPresentationStyle = .fullScreen self.present(vc, animated: true, completion: nil) 프레젠 테이션 스타일을 .fullScreen으로 하지 않으면 단순하게 모달스타일로 띄워지기 때문에 드래그하면 다시 전화면으로 갈 수 있다. 단순하게 세팅페이지 같은 걸 사용하는게 아니라 페이지 자체를 이동시켜서 돌아.. 2022. 2. 14.
Codable 오늘의 회사업무에서는 처음으로 Codable을 사용했습니다. Codable은 Encodable과 Decodable이라는 두가지를 가지고 있습니다. 조금 친숙한 단어로 말하자면, 인코딩, 디코딩을 말합니다. 그러면 무엇을 인코딩 디코딩 하느냐? Apple 공식 문서에 따르면 외부 표현(external representation) 이라고 하는데 그냥 json이라고 생각하면 된다. json은 우리가 무언가를 인터넷에서 할 때, 사용할 특정 정보를 담고 있다. 예를 들어 내가 사이트에 로그인을 입력한다고 가정해보면. 로그인을 하는 순간그냥 뿅 끝나는 것이아니라. 사이트에 나의 정보들이 담기기 시작한다. 내 컴퓨터엔 내 정보가 항상 저장되어있는게 아니다. 사이트는 빈껍데기였다가 내가 로그인 하는 순간. 아~ 기꼬.. 2022. 2. 11.
로그아웃구현 - push와 present 그리고 NotificationCenter, View의 생명주기 지난 두 글에서 비슷하지만 다른 두가지의 뷰를 전환하는 방식을 다루었다. View와 View를 연결하는 방식 https://h1guitar.tistory.com/164 push와 present 안녕하세요 오늘은 앱을 개발하는 과정에서 기본적으로 요구하는 화면전환에 대해서 알아보겠습니다. 기본적으로 화면을 전환하는 방식은 Navigation을 이용해서 Stack처럼 쌓아가는 방식과 그냥 h1guitar.tistory.com present 세로 방향으로 전개되는 View UIViewController의 메소드 실행시키면 기존의 UIViewController 위에 새로운 뷰를 띄운다. 이전 뷰로 돌아가기 위해서는 dismiss push 가로 방향으로 전개되는 View UINavigationController의.. 2022. 1. 12.
(뷰의 이동) Segue를 연결하는 3가지 방법 segue 세그웨이를 연결하는 방법은 3가지가 있다. 1. 스토리보드에서 UIbutton을 배치하고 ctrl 키를 누르고 목적지가 될 뷰컨트롤러에 드래그를 하면 액션 세그창이 생성됨. 원하는 방식을 선택하면된다. 2. performSegue 메소드를 이용하여 연결하기 (storyboard + code) 스토리보드에서 출발하는 viewController에서 도착하는 viewController를 연결한뒤 생기는 연결 선(세그웨이)를 클릭하면 identifier를 설정해주고 코드상에서 연결하는 방법 코드상에서는 prepare와 Perform Segue 메소드를 이용해 행동을 정의할 수 있다. prepare override func prepare(for segue: UIStoryboardSegue, sender.. 2022. 1. 5.
Delegation Programming Design Pattern Delegation : 위임 Delegate : 위임하다 어떤 객체가 자신이 할일을 다른 객체에게 위임하는 형태 언제 써야 하나? Use to break up large classes or create generic, reusable components. UIKit 에서 가장 흔하게 쓰입니다. (e.g. ~DataSource , ~Delegate 가 들어간 이름들) DataSource: 데이터를 제공 (e.g. UITableViewDataSource : UITableViewCell 를 제공 to display) Delegate: 데이터나 이벤트를 받음 (e.g. UITableViewDelegate : row가 선택될 때마다 알림제공) 주의사항 매우 유용하지만 과하게 사용할 수 있다. 하나의 객체에 대해 .. 2021. 12. 15.
UISlider Control event 이전에 사용했던 UIButton과 달리 value changed event일 때, action을 호출한다. 다양한 이벤트가 존재함. 내가 사용하는 것마다 event가 다르기때문에 공식문서 참고 https://developer.apple.com/documentation/uikit/uicontrol/event Apple Developer Documentation developer.apple.com 2021. 12. 15.
Gesture Recognizer 제스쳐인식기는 스토리보드에서 오브젝트 추가를 통해 생성할 수 있습니다 원하는 제스쳐를 찾아서 뷰컨트롤러에 드래그 적용시 뷰컨트롤러의 상단에 표시가 됩니다. 실제로 작동하기 위해서는 1. 링크시킨다 2. 액션에 대한 코드도 작성이 돼야합니다. @IBAction func tapBackground(_ sender: UITapGestureRecognizer) { print("tap background view") // self.view.endEditing(true) // self.inputField.resignFirstResponder() // self.inputField.endEditing(true) } 주석처리한 3가지 코드는 텍스트필드에 입력하고 마쳤을때, 화면을 터치시 키보드가 사라지도록 설정하기 위한 .. 2021. 12. 15.
2주차 프로젝트03_업다운게임 1. 목표 : Outlet과 Action을 구현해 버튼만들기, 화면터치시 제스쳐 인식하기 IBOutlet IBAction Gesture Recognizer 링크된 것들 이름 바꾸기 Mark: 입력하기 2. 구현화면 - 왼쪽label: start!, up! down! 정답입니다! 메세지 출력 - 오른쪽label: 제출한 숫자 카운트 - textfield: 숫자를 입력하는 곳 - 제출button: 입력값 없음, 입력값이 잘못되었음 등의 출력을 나타낼수 있도록 함수 설정 3. gesture recognizer 4. 링크된 요소들의 이름을 바꿀경우 Editor - refactor - rename에서 수정가능 5. Mark: 주석 입력하기 // Mark: [입력] // Mark:- 입력시 구분선 생성 2021. 12. 15.
UITextfield에 입력후 키보드 숨기기 우리가 핸드폰을 사용할 때, 당연하게 생각해왔던 것 중 하나는 "텍스트를 입력하고 나면 키보드가 자연스럽게 사라지는 것이다." 그 당연한 것들이 개발자의 세계에서는 당연하지 않고 하나하나 지정해줘야하는 것이다. 이걸 처리 하지않으면 입력이 끝나도 키보드는 영원히 화면에 남는다. Textfield가 이미 만들어져있는 상황,, override func touchesBegan(_ touches: Set, with event: UIEvent?){ self.view.endEditing(true) } 이 코드만 viewController의 아무곳에나 추가하면 된다. + 또다른 방법 // UITapgestureRecognizer를 선언해 둔 상태에서 함수안에 아래 코드를 삽입하고 셋중에 아무거나 사용해도된다. @IB.. 2021. 12. 14.
2주차 프로젝트02_프로필 목표 UIKit 둘러보기 Auto Layout 알아보기 Human Interface Guideline for iOS 알아보기 View Programming Guide 알아보기 UIKit에 대해서는 다른 포스팅에 정리했다. https://h1guitar.tistory.com/133 UIKit 알아보기 UIKit User Interface Kit iOS 또는 tvOS의 사용자 인터페이스 구성을 위한 프레임워크 Foundation 프레임워크와 더불어 iOS의 대부분의 큰 기능을 이루는 뼈대 UIKit은 이미 Foundation을 import하고 있다. 각각.. h1guitar.tistory.com https://developer.apple.com/documentation/uikit Apple Developer.. 2021. 12. 14.