자 이번에 HCI 프로젝트를 진행하면서 검색바를 만들기로 했는데, 이걸 뷰에 이미지와 텍스트필드 버튼을 컨테이너 식으로 얹어서 만들려고 했다니... 아무튼... 서치바라는 게 있어서 사용해보고 간단하게 정리해보도록 하자.
1. 서치바를 스토리 보드에서 추가한다.
2. (주의) 서치바의 delegate를 도커바에 연결한다.
3. 위의 코드는 사용자가 키보드에서 검색 버튼 클릭시 실행되는 메소드인데, 자동완성 되지 않는 경우가 종종 있음.
키보드로 검색 활성화 하는 방법 :
viewDidLoad에 이 코드를 추가한다. 서치바는 아울렛 변수를 연결한 것
searchBar.enablesReturnKeyAutomatically = false // 검색 키가 항상 활성화되어 있도록 처리
자 이번에는 10개의 테이블 정보가 있었는데 내가 검색를 해서 1개의 테이블 뷰만 검색되었다고 치자.
그런데 유저가 검색을 다 지우고 모든 정보를 보고 싶은거야.
이런 경우는 어떻게 처리하는게 좋을까?
우선 쉽게 생각해보자, 사용자가 아무것도 입력하지 않고, 검색을 하면 모든 뷰가 나타나도록 설계해보자
if let t = text, t.isEmpty == false {
fetchRequest.predicate = NSPredicate(format: "contents CONTAINS[c] %@", t)
}
-> 이코드에서 중요한 점은 fetch(keyword:)로 nil을 전달하지만 아무튼 내가 짠 로직에선 크게 문제가 없다.
근데 이런거를 떠나서 내가 지금 중요한 것은.
UI 설계에는 큰 어려움을 겪지 않지만 데이터 설계하는데 있어서 너무 큰 어려움이 있다.
UserDefault도 CoreData도 정확하게 이해하지 못한 느낌이다...
음... 뭐랄까 하나하나 전부 재공부해야하는 느낌?
firebase나 아마존 aws? 사용할 수도 있으니까 아무튼 이 부분에 대해서는 따로 공부를 꼭 해야할 것 같다.
'Archive > 꼼꼼한 재은씨 시리즈' 카테고리의 다른 글
JSON 학습정리 (0) | 2021.04.23 |
---|---|
서버연동(RESTful API,HTTP,HTTPS) 이론 (0) | 2021.04.22 |
CoreData 코드 리뷰 (0) | 2021.04.09 |
이벤트 버블링과 리스폰더 체인 (0) | 2021.04.09 |
[iOS] 당겨서 새로고침 (Pull To Refresh) (3) | 2021.04.06 |