오늘은 TodoList 과제의 필수 기능 구현이 완료된 후 어떤 선택 기능을 할지 고민하다
아이폰 기본 앱 미리알림을 참고하여 카테고리 추가를 하기로 결정했다.
카테고리를 추가하여 할 일 항목을 그룹화하고 관리할 수 있도록 만드는 것이 목적!
UI 구성
TodoList 목록 이전에 목록 뷰가 나와야 하기 때문에 새로운 뷰컨트롤러를 생성해 네비게이션을 다시 연결해주었다.
그리고 새롭게 만든 뷰에 컴포넌트들 추가해서 화면 구성 후 오토레이아웃도 열심히 잡아주었다.
목록 화면 구성도 이전과 같이 TableView를 사용했다. 추가 구현이니 CollectionView를 시도해볼까도 고민했지만 공부하는 데만 시간을 다 쓸 것 같아 익숙한 테이블뷰로 구성했다..🥲
- Embeded in View Controller → Navigation Controller
- 이 때 주의할 점은 새로운 네비게이션컨트롤러에 ☑️is Initial View Controller 선택해주기
스토리보드와 코드 연결
ListTableViewController
ListTableViewCell
새로운 tableView를 만들었으니 TableViewController와 TableViewCell에 연결했다.
Cell의 Identifier 연결해주는 것도 잊지 말고 해주기!!
데이터 구조 변경
TodoData
// MARK: - Todo 데이터 구성
struct TodoData {
static var nextId = 0
var id: Int
var title: String
var isCompleted: Bool
init(title: String, isCompleted: Bool = false) {
self.id = TodoData.nextId
self.title = title
self.isCompleted = isCompleted
TodoData.nextId += 1
}
}
Category
struct Category {
let name: String
var todos: [TodoData]
}
extension Category {
static let sampleData: [Category] = [
Category(name: "To do List", todos: []),
Category(name: "Work", todos: []),
Category(name: "Shopping", todos: [])
]
}
할 일 항목에 카테고리를 추가하는 데 필요한 데이터 구조를 변경해야 하니 Category 구조체를 만들고 TodoData 구조체에 카테고리 속성을 추가했다.
🚧🚧
데이터 연결은 추후 수정 후 추가할 예정!!!
'TIL✏️' 카테고리의 다른 글
[iOS] 키오스크 앱 프로젝트 - CollectionView 공부 (1) | 2024.04.02 |
---|---|
[iOS] Swift로 TodoList App 만들기(4) - 편집 모드(셀 이동) (2) | 2024.03.28 |
[iOS] Swift로 TodoList App 만들기(2) - 취소선, UserDefaults 데이터 저장 (5) | 2024.03.26 |
[iOS] Swift로 TodoList App 만들기 (4) | 2024.03.26 |
[Swift] 숫자 야구 게임 (1) | 2024.03.18 |