-
[iOS] 4-5주 차 미션iOS/UMC 2022. 10. 31. 23:13
4주 차 미션
✅ TableView를 이용하여 메모장 구현하기
먼저 필요한 ViewController 파일을 생성해준다.
TableView DataSource와 Delegate 프로토콜을 채택하여 필요한 코드를 작성해준다.
UITableViewDelegate
- 테이블 뷰에서 section의 header, footer를 관리하고 셀을 삭제하거나 위치를 바꾸고 그 외의 다른 작업을 수행하기 위한 메서드를 제공한다
- 테이블뷰의 시각적인 부분을 수정해주고, 테이블 뷰의 개별 행 편집 등을 도와주는 역할을 한다
UITableViewDataSource
- 테이블 뷰의 셀에 사용되는 데이터를 관리하기 위한 메서드를 제공한다
- 테이블뷰를 생성하고 수정하는데 필요한 정보를 테이블뷰 객체에 제공하는 역할을 한다
// Create new note @IBAction func didTapNewNote() { guard let vc = storyboard?.instantiateViewController(identifier: "new") as? EntryViewController else {return} vc.title = "New Note" vc.navigationItem.largeTitleDisplayMode = .never vc.completion = {noteTitle, note in self.models.append((title: noteTitle, note: note)) self.navigationController?.popViewController(animated: true) self.label.isHidden = true self.table.isHidden = false self.table.reloadData() } navigationController?.pushViewController(vc, animated: true) }
새로운 메모를 작성할 때 필요한 코드를 구현한다
✨ EntryViewController 코드
// // EntryViewController.swift // Week4-project // // Created by yeonsu on 2022/11/02. // import UIKit class EntryViewController: UIViewController { @IBOutlet var titleField: UITextField! @IBOutlet var noteField: UITextView! public var completion: ((String, String) -> Void)? override func viewDidLoad() { super.viewDidLoad() titleField.becomeFirstResponder() navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Save", style: .done, target: self, action: #selector(didTapSave)) } @objc func didTapSave() { if let text = titleField.text, !text.isEmpty, !noteField.text.isEmpty { completion?(text, noteField.text) } } }
let model = models[indexPath.row] // Show note controller guard let vc = storyboard?.instantiateViewController(identifier: "note") as? NoteViewController else { return } vc.navigationItem.largeTitleDisplayMode = .never vc.title = "Note" vc.noteTitle = model.title vc.note = model.note navigationController?.pushViewController(vc, animated: true) }
작성한 메모를 확인할 때 필요한 코드를 구현한다.
✨ NoteViewController 코드
// // NoteViewController.swift // Week4-project // // Created by yeonsu on 2022/11/02. // import UIKit class NoteViewController: UIViewController { @IBOutlet var titleLabel: UILabel! @IBOutlet var noteLabel: UITextView! public var noteTitle: String = "" public var note: String = "" override func viewDidLoad() { super.viewDidLoad() titleLabel.text = noteTitle noteLabel.text = note } }
Cell을 왼쪽으로 슬라이드하면 나타나는 delete 버튼을 구현하는 코드이다.
최종 실행 화면 5주 차 미션은 어플리케이션을 실행할 때 나타나는 로딩 애니메이션을 Lottie로 구현했다!
'iOS > UMC' 카테고리의 다른 글
[iOS] 6주 차 미션 (0) 2022.11.05 [iOS] UMC iOS 세미나 6주 차 (0) 2022.10.31 [iOS] UMC iOS 세미나 5주 차 (0) 2022.10.31 [iOS] UMC iOS 세미나 4주 차 (0) 2022.10.27 [iOS] 3주 차 미션 - 화면 전환을 이용한 미니 계산기 만들기 (0) 2022.10.08