오늘의 주제
- UISearchDisplayController
서른 다섯 번째 시간입니다.^^
지난 번에까지는 객체간의 데이터 전달에 대해 알아보았습니다.
잘 알아두셔야 할 부분들일 거예요 ㅎ
오늘 부터 시작할 포스팅은 꽤나 길게 이어질 것 같습니다.
여러분께서 원하던 기능들을 많이 많이 해볼거거든요..ㅎ
제목은 UISearchDisplayController 지만 이 안에는 엄청나게 많은 내용들을 담게 될 것입니다.
요 녀석에 많은 것을 활용 해 볼 수 있는 요소들이 있거든요 ㅎ
자 일단 결론부터 말씀을 드리자면
검색결과 컨트롤러 다루기
테이블뷰 다루기
검색바 다루기
스레드 다루기
URL Request 전송
JSON 파싱
XML 파싱
여러분들께서 궁금해 할 만한 내용들을 대폭 담아 볼 예정입니다.
원래 다른거 할 것들이 조금 더 있었는데, 많은 분들이 얼른 해달라고 요청해 주셔서 더 빨리 진행하게 되었습니다.
그만큼 조금 복잡하고 어려운 포스팅이 될 것이라고 생각하지만, 여태껏 잘 따라오셨다면 몇 번 보고 이해하실 수 있을 정도라고 생각이 듭니다.
물론 전제로는 앞의 제 포스팅을 완벽히 이해하고 있다는 전제하에 시작합니다.
그럼 이번에도 힘겨운 여정을 떠날 준비가 되셨나요?ㅎ
출발해 볼까요~?
UISearchDisplayController
왜 검색 컨트롤러를 사용하느냐...
우리가 이제 몇 번의 포스팅으로 진행해 나갈 프로젝트를 간략히 설명드리겠습니다.
검색 컨트롤러를 이용하여 Daum 책 검색, Daum 동영상 검색을 통하여 결과를 가져와서 파싱한 다음 테이블뷰에 뿌려주고,
테이블 뷰를 선택하면 해당 결과 페이지로 이동하는 녀석을 만들어 볼 것입니다.
자 그러기 위해선 우선 검색 결과 컨트롤러를 사용하기 위하여 뷰 컨트롤러를 하나 생성해 줍니다.
그 화면에 Search Bar and Search Display 라는 이름의 객체를 하나 얹어 줍니다.
그리고 Search Display Controller 라는 녀석을 헤더에 아울렛을 하나 연결 해 주세요~
자, 그리고 새로운 화면을 띄워주기 위해서 우리가 메인으로 쓰고있던 ViewController에서 버튼을 하나 추가해 주고 액션을 연결해 주세요~
그리고 구현파일 ViewController.m으로 와서 헤더 임포트 해주시고~
모달뷰를 띄우는 메서드를 구현해 줍니다 ㅎ
자, 우리는 이 검색 컨트롤러에 대해 잘 모릅니다.
일단 뭐 죽이되는 밥이되든 그녀석의 레퍼런스를 찾아 들어가 봅니다.
항상 그렇듯 Overview에 이 클래스에 대한 개요가 나옵니다.
이녀석이 어떤 녀석인지 알아봅시다.
일단 뭐 테이블에 검색결과를 뿌려주는 녀석 같습니다. ㅋㅋㅋ
이녀석을 사용하려면
- 검색 결과 테이블의 데이터 소스 구현
- 검색 결과 테이블의 딜리게이트 구현
- 검색 출력 컨트롤러의 딜리게이트 구현
- 검색바의 딜리게이트 구현
순대로 구현을 하라고 하네요~
일단 말 잘 들으면 좋습니다 ㅋㅋㅋ
일단 테이블뷰의 데이터 소스를 먼저 구현해 보려고 합니다.
필수로 구현되어야 할 메서드가 있나요?
네.. 있죠~ 그런데 이녀석들 구현하기가 너무 귀찮습니다~
그래서 테이블 뷰 서브 클래스를 하나 만들어 봅니다. 이거 임시적으로 만드는 거예요~
그래서 구현파일에 가보면 데이터 소스와 딜리게이트 모두 친절하게 구현이 되어있습니다.
#pragma mark - Table View data source
부터~ 아래쪽에 있는 딜리게이트 메서드까지 쭈욱 끌어서 복사합니다~
바로 여기까지용 ㅋ
그리고 필요없어졌으니 가차없이 지워버립니다. ㅋㅋㅋ
네비게이터에서 두 파일을 선택하고 delete -> Move To Trash 입니다~
자 그럼 위에서 1,2 번은 구현이 되었으니 3번을 구현해야 할 차례인데, 일단 보니 필수적으로 구현해야 할 메서드가 없네요?ㅎ
그럼 일단 스킵합시다~
또 4번 째 검색 바 딜리게이트 또한 필수 구현 메서드가 없네요~
그럼 요녀석도 잠시 스킵합니다 ㅎ
그리고 이제 다시 검색 뷰 컨트롤러로 돌아와서 화면에 툴바를 먼저 얹어 주시구요~ 바 버튼 네 개를 넣어줍니다.
그리고 웹뷰를 올려주세요~
각 버튼은 액션을 연결해 주시고, 웹뷰는 아울렛을 연결해 주세요~
바 버튼들 어떻게 처리하는지 모르신다면
2012/05/07 - [iOS Dev/함께해보기] - iOS개발하기 #27. 웹뷰 (WebView) <1> 를 참고해 주세요~
그리고 친절하게 버튼 메서드들도 구현해 줍니다~ 웹뷰를 보셨다면 어떤 버튼들인지 감이 오시죠?ㅎ
밑에 경고들은 일단 무시하세요~ ㅎ 다음에 설명드릴게용~
자, 이렇게 하고 실행 해 보세요~
덩그라니 검색 화면만 나오고 뭐 검색결과도 안나오고..ㅋㅋ
일단 우리는 아직 밑장만 깔아놓은 거예요~
아휴~ 준비하는데도 참 힘드네요 ㅎㅎㅎ
이제 다음 포스팅 부터 본격적으로 이것 저것 해볼게용~
기대해 주세요!
by yagom
p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.