2024.03.19 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (1) 2024.03.21 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (2) 2024.03.25 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (3) ToDoList 앱 만들기 (4) 오늘은 지금까지 해결하지 못하던 문제들을 한번에 해결하는 날이었다. 분명히 구현이 되어야 하는 기능인데 왜 되지 않을까 고민에 빠졌었지만 한가지 실마리가 해결되니 줄줄이 해결 되는 날이었달까.. 오늘은 내가 해결한 내용을 위주로 글을 써볼까 한다. 내가 가지고 있던 문제 새로운 할 일을 추가하면 새로 등록되는 newTodo 의 레이블 값 즉 할일을 적는 부분이 완료 버..
Delegate Pattern 왜 사용하는 걸까? 과제나 강의를 들어도 꼭 나오는 델리게이트 패턴은 정말 많이 쓰이는 것 같지만 정작 왜 사용하는지 모르고 사용하는 것 같은 느낌이 들어 개념을 한번 잡아보려고 한다. Delegate Pattern 이란 객체가 자신의 책임을 다른 객체에게 위임하는 디자인 패턴 테이블뷰는 셀을 탭했을 때 어떤 행동을 할지에 대한 책임을 뷰컨트롤러에게 UITableViewDelegate 를 사용하여 위임한다. 테이블 뷰 외에도 콜렉션뷰 , 텍스트필드 등 많은 UI 요소들이 델리게이트 패턴을 사용해 다른 객체에게 책임을 위임하고 있다. 왜 위임을 하는 걸까? UI요소에서의 Delegate Pattern 셀을 탭하면 테이블 뷰는 탭 이벤트를 받는다. 테이블뷰가 탭 이벤트를 받으면..
2024.03.19 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (1) 2024.03.21 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (2) ToDoList 만들기 (3) 오늘은 새로 배운 MVC 패턴, 클래스 간 데이터 이동 등 강의를 통해 배운 내용을 이번 과제에 한번 녹여내보고 싶어 원래 만들었던 ToDoList 를 버리고 새로 다시 만들었다. 다시 만들면서 취소선 만들기 부분이 생각보다 이해가 되지 않는 부분이 있어 다른 분의 블로그를 참고하여 새로 공부를 다시 했다. 취소선 구현 먼저 원래 사용했던 UISwitch 를 토글하여 true/false 를 구한 후 이 값을 활용하여 사용하는 법보다 UIButton 을 사용하여 select..
MVC 패턴 적용하여 테이블 뷰 구성하기 지난번 MVC 패턴의 기본 개념정도만 정리하는데 그친 반면에 오늘은 이 패턴을 직접 적용시켜 간단한 테이블 뷰를 만들어 보려고 한다. Swift Architecture , MVC 개념 정리 아키텍처(Architectuer) 애플리케이션을 설계하고 구축하는데 사용되는 구조와 패턴을 나타낸다. 모델의 구성과 동작 원리, 구성요소 간의 관계 및 시스템 외부 환경과 관계 등 포괄하여 설명하는 dongdida.tistory.com 먼저 MVC 패턴을 다시 한번 간단하게 말해보면 소스 코드 설계 기법으로써, 모델(Model) , 뷰(View), 컨트롤러(Controller) 의 핵심구조를 이용하여 애플리케이션을 설계하는 것을 말한다. 모델(Model)은 데이터를 담당하고 뷰..
앱의 화면 이동 , 데이터 전달 방법 코드베이스 컴포넌트, 코드로 화면 이동 코드베이스로 컴포넌트 생성 및 오토레이아웃 잡은 경우, 먼저 새로운 FirstViewController 를 생성하여 코드베이스로 레이블, 버튼 등 구성했을 경우 하단에 내용과 같이 코드를 구성할 수 있다. UILabel 과 UIButton 을 담아 줄 변수를 선언하여 레이블을 만들어준다. 이 변수 안에 레이블의 오토레이아웃, 셋업 등 화면에 구성될 수 있도록 만들어준다. class FirstViewController: UIViewController { let mainLabel = UILabel() // 따로 적지 않고 변수에 바로 클로저를 선언하여 보다 간편하고 깔끔하게 버튼을 만들어 줄 수 있다. lazy var backBut..
오늘은 아무리 해도 분명히 이게 맞는데 정말 이상하게 계속 오류가 나 미치도록 답답한 순간이 있었다.고민고민하다가 튜터님을 찾아가 해답을 얻는데는 1분이 걸리지 않아 정말 어이없었지만짚고 넘어가야 똑같은 실수를 하지 않을 것 같아 기록해두려고 한다.먼저 스토리보드를 통해 우리는 레이블을 생성하여 해당 레이블을 뷰컨트롤과 연결하기 위해 IBOutlet 을 사용하여 Name을 설정한 후 이 명칭을 통해 해당 아울렛을 불러오는 일이 아주 잦다.이런식으로 생성된 mainLabel이 있다고 가정했을때 내가 임의로 저 명칭을 subLabel 이라고 수정한다면이전에 연결되어있던 레이블과는 연결이 되지 않는다. 오늘 내가 저 명칭을 임의로 바꾼것도 잊은채 원하는 기능이 구현되지 않아 정말 어려운 순간이 있었다.꼭꼭 저..