적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

Project 17

[Swift iOS] 흥미로운 UITextFieldDelegate

UITextField는 재미있는 친구다. 이 친구를 더욱 다양한 방법으로 활용하기 위해서는 UITextFieldDelegate 프로토콜을 추가해주어야 한다. 그런다음 textField.delegate = self 로 상속받기. 굉장히 간단한 쇼핑 리스트 앱을 만들어보고자 했지만, 생각보다 UITextField를 다루기가 쉽지 않았다. 보통은 새로운 창을 띄워 텍스트를 입력하고 저장하면 목록에서 볼 수 있도록 하는 방법으로 text field를 많이 사용하지만, 새로운 창 같은거 띄우지 않고 그냥 테이블뷰 목록에서 직접 입력하고 편집하고 값 저장하고 다 하려니까 UITextFieldDelegate에 대해 아주 깊게 탐구해보게 되었다. 애플 개발자 문서를 찾아보면 란? 키보드 입력 및 전반적인 text fi..

[Toy Project] Shopping List 장보기 앱 만들기

커플 앱은 들어가야할 기능도 너무 많고 하나하나 추가하다보니 생각보다 너무 오래 걸릴 것 같아서 반성한번 하고, 앱스토어 등록을 목표로 좀 더 간단하게 한 기능에만 집중한 토이 프로젝트를 만들어보기로 했다. 첫번째는 Shopping List 장보기 앱 만들기! 아주 간단하게 필요한 기능만 구현하도록 만들어보겠다. 간단한 기능이지만 만들기는 간단하진 않은 것 같다. ㅎㅎㅎ 1. tableview 만들기 2. uitableviewcell 속성의 custom cell 만들어 넣어주기 3. custom cell 내 버튼 이벤트 추가

[Swift iOS] tableView 안에 Date Picker 넣는 법?

달력에 일정을 추가하기 위해 Date Picker로 날짜를 선택할 수 있는 cell을 만들어보았다. cell 에 들어가는 item들을 배열로 설정할 경우, var items = ["날짜", "", "시간", "위치"] 이렇게 Date Picker가 들어갈 자리를 빈 cell 로 설정하여, 날짜 cell 을 터치 시 나타나고 default 값으로는 숨어서 보이지 않는 형태로 만들어 볼 것이다. 1. UIDatePicker() 추가하기 DatePickerCell을 UITableViewCell 클래스로 따로 만들어 넣어주는 방법도 있던데, 나는 섹션도 여러개고 행도 여러개이기 때문에 cell 마다 클래스를 따로 만들어주면 너무 복잡할 것 같아서 그냥 내부에서 설정해주었다. var datePicker = UID..

[Swift iOS] UIAlertController로 alert 창 띄우기

let alert = UIAlertController(title: nil, message: "내용을 입력해주세요", preferredStyle: .alert) alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) self.present(alert, animated: true) tableView에서 항목 추가를 위해 모달을 띄우고, 입력을 받아오는데 혹시나 입력값이 없는데도 save 버튼을 눌렀을 때 내용을 입력하라는 경고창을 띄워보았다. class AddListViewController: UIViewController { var inputText = UITextField() ... @objc func save(sender: ..

[Swift iOS] 입력값을 받아와 tableView에 띄우기 - 데이터 내부 저장 방법 AppDelegate

modal 창을 띄워 입력값을 받아와 tableview에 띄우고 싶었는데 안되더라. 데이터가 왜 넘어가지 않는 것이야!!!! 받아올 수 없는 데이터에 씁쓸함을 안고 검색도 해봤지만 해답을 찾지 못하고 도서관에와 책을 뒤적뒤적거리다가 발견. 해결 방법은 'AppDelegate' 파일에다가 데이터를 저장할 배열 변수를 프로퍼티로 정의하는 것!! 배열 변수를 AppDelegate 클래스에 저장하는 것은 [ 접근성 / 데이터 보존 / 일관성 ] 크게 이 세 가지 이슈 때문이라고 한다. 나는 그냥 모달이나 테이블 뷰가 있는 뷰 컨트롤러 클라스에 배열 변수를 생성해 저장하고 불러오고 그랬는데, 이렇게 저렇게 아무리 해봐도 입력된 값이 테이블뷰에 뜨지 않는 것이었다ㅠㅠ 그 이유는 뷰 컨트롤러는 생명 주기가 길지 않아..

[Swift iOS] Custom UITableView 만들기

테이블뷰 하나만도 커스텀하게 만들기 쉽지 않구나 하는 걸 깨닫게 되었다. 테이블 뷰 굉장히 만만하게 봤는데.. 너 만만하지 않구나? ㅎㅎ 1. 테이블 뷰 추가하기 2. extension으로 UITableViewDataSource, UITableViewDelegate 추가해주기 3. section 갯수, 각 section 당 cell 갯수, 높이 및 각종 속성들 추가 4. UITextField() 이용해서 사용자 입력 받아오기 5. UITableView 속 cell 내용들 추가 기본 테이블뷰 추가해 화면에 띄우기 import Foundation import UIKit class AddScheduleViewController: UIViewController { let tableView = UITableVie..

[Swift iOS] modal presentation style 모달로 화면 띄우기

1. 모달로 뷰컨트롤러 띄우는 법 2. 모달 스타일 설정 3. 모달 크기 변경 뷰컨트롤러로 화면을 이동하는 방법은 여러가지가 있겠지만 가장 많이 쓰이는 방법으로 크게 두가지를 꼽을 수 있다. 네비게이션 컨트롤러로 옆으로 넘겨주는 방법과 let vc = NavViewController() self.navigationController?.pushViewController(vc, animated: true) 모달로 화면을 아래에서 위로 띄우는 방법. let vc = ModalViewController() vc.modalPresentationStyle = .automatic present(vc, animated: true, completion: nil) 여기서 modalPresentationStyle 은 기본으..

728x90
반응형