Project/Memo 5

메모 상세 화면 구현

메모 목록 화면에서 선택한 화면의 전체 내용을 볼 수 있는 상세 화면 구현 MemoReadVC 파일 내에 MemoData 타입의 param 변수 생성 viewDidLoad 메소드 내에 아래 코드 구현 - param 변수의 값을 이용하여 화면 객체에 콘텐츠 출력 - 날짜 포맷을 통해 원하는 방식으로 변환 - 작성한 시간을 네비게이션 타이틀에 할당 MemoListVC 클래스내에 tableView(_: didSelectRowAt:) 메소드 구현 여기까지 하면 메모 앱을 작성하고 보는 것까지 구현함 앞으로 해볼 것 1. 삭제, 업데이트 기능 추가 2. 탭바를 추가하여 홈화면, 설정화면 넣어보기

Project/Memo 2024.01.26

메모 목록 화면 구현

UITableViewController 클래스를 상속받아 구현 핵심 내용 앱 델리게이트의 memoList 배열에 저장된 데이터를 읽어와 테이블 뷰를 구성하는 것 먼저 MemoListVC.swift 파일 내에 앱 델리게이트 객체를 참조할 수 있도록 멤버 상수를 정의 tableView(_ : numberOfRowsInSection: ) 메소드에 테이블 뷰 셀 개수를 결정하는 코드 구현 tableView(_: cellForRowAt:) 메소드를 통해 개별 행을 어떻게 구성할지 코드 구현 테이블 객체의 재사용 큐에서 프로토타입 셀의 인스턴스를 보면 iOS 시스템 리소스의 절야과 퍼포먼스를 위해 새로운 테이블 셀을 만들기보다 이미 만들어진 셀을 재사용할 수 있도록 처리 Date() 타입의 날짜 정보를 String..

Project/Memo 2024.01.26

메모 작성 화면 구현 (메모 저장)

메모 내용 및 이미지를 선택한 뒤에 저장 버튼을 눌렀을 때 메소드 구현 입력된 값을 저장하는 순서는 다음과 같음 1. 메모 내용이 입력되지 않았을 경우 대비, 경고창 띄움 ☆ 경고창에 버튼을 추가하고 싶다면? ☆ 원하는 버튼의 개수 만큼, UIAlertAction 클래스 객체를 생성 -> 등록 진행 2. 데이터를 저장할 MemoData 객체 생성 제목, 내용, 이미지, 작성 시간을 MemoData 객체에 전달 3. 앱 델리게이트 인스턴스를 불러온 뒤, memoList 배열 변수에 MemoData 객체 추가 UIApplication.shared는 UIApplication 객체의 인스턴스를 참조하기 위해 제공되는 타입 프로퍼티 UIApplication 객체는 직접 인스턴스 생성 불가, 시스템에 의해 생성된 ..

Project/Memo 2024.01.26

메모 작성 화면 구현 (카메라, 앨범 접근)

스토리보드에 정의된 메모 작성 화면 (아래 폭포수 이미지는 해당 위치에 이미지가 배치된다는 걸 알려주기 위해 일부러 넣음) 사용자가 카메라 버튼을 눌렀을 때 호출되는 액션 메소드 구현 // 카메라 버튼을 클릭했을 때 호출되는 메소드 @IBAction func pick(_ sender: Any) { let alert = UIAlertController(title: nil, message: "이미지를 가져올 곳을 선택해주세요", preferredStyle: .actionSheet) // 이미지 피커 인스턴스를 생성 let picker = UIImagePickerController() picker.delegate = self picker.allowsEditing = true alert.addAction(UIA..

Project/Memo 2024.01.26

메모 앱 기능 구현 (데이터 모델 작업)

간단히 메모 기능을 가진 앱을 개발해보려고 함 그럼 가장 먼저 해야 하는 일은 "데이터 모델"을 정의하는 것 (단, UI는 스토리보드로 미리 구현했다는 가정하에 진행) 여기서 데이터 모델은 사용자가 입력한 데이터를 저장 및 화면 출력의 용도로 형식이 있는 건 아니지만, 주로 클래스로 정의 데이터 모델을 작성하는 파일은 기본 파일 형식인 Swift File을 생성하여 파일 이름 설정 후, 파일 안에 작성 메모에 필요한 데이터 목록 1. 메모 구별값 2. 제목 3. 내용 4. 이미지 5. 작성일 import UIKit class MemoData { var memoIdx: Int? var title: String? var contents: String? var image: UIImage? var regdate..

Project/Memo 2024.01.26