오늘의 주제
1. 맵뷰 띄우기
열 일곱번째 시간입니다.^^
지난 번까지는 화면 전환 기법 몇 가지를 알아보았습니다.
화면 전환은 상황과 때에 맞게 그리고 사용자의 요구에 맞게 적절하게 사용하면 되겠습니다~^^
자 그럼 오늘은 지도(구글 맵)을 한 번 띄워보도록 하지요~
출발~~~~~~~~~~~~
# MKMapView
긴 말 필요 없습니다 ㅋㅋㅋ 바로 실습 들어갑니다.
당연히 지난번 까지 쓰던 프로젝트 그대로 사용합니다~
새로운 뷰 컨트롤러 생성을 위하여 Root폴더에서 우클릭(또는 컨트롤+클릭) 하여 New File...을 선택!
UIViewController Subclass를 선택하고 Next~!
아... 이제 다음부터는 이거 캡쳐 안해야지... ㅋㅋㅋㅋㅋㅋㅋㅋ
이름을 MyMapViewController라고 해줍니다. 체크박스와 Subclass of를 잘 확인하세요~
자 뷰 컨트롤러가 생성되었으면 MyMapViewController.xib파일을 엽니다.
View위에 Map View를 끌어다 놓습니다. 자동으로 화면 전체에 들어갈거예요~
그 위에 버튼 세개를 살포시 얹어줍니다. 그리고 속성창에 들어가서 Alpha 값을 0.5로 설정해 줍니다~
그 후에 이제 SecondViewController.m으로 갑니다. 우리는 이 MyMapViewController를 SecondViewController에서 Modal View로 띄울 생각이거든요^^
자, SecondViewController.m으로 와서 새로 만든 MyMapViewController를 import해줍니다.
그 후에 아래로 내려와서 지난번에 만들어 놓았던 modalButtonClick메소드를 수정해 줍니다.
그리고 나서 실행을 해 봅니다~
짠! 잘 되시나요?ㅋㅋㅋ
안ㅋ돼ㅋ요ㅋ
빌드에서 에러도 없는데 왜 안될까요 도대체 ㅠㅠㅠ
자... 그럼 우리가 새로 추가한 녀석이 누군가 떠올려 봅시다.
우리가 처음 써보는건 분명히 Map View네요^^
개발문서에서 MapView에 관해 검색해 보았습니다.
Map View의 클래스 이름은 MKMapView입니다.
자... 개발문서에서 Class Reference를 보시면 사용하는 Framework와 사용가능한 버전, 그리고 선언되어있는 헤더가 나오네요~
MapKit.framework와 MKMapView.h 등을 데려와야 하겠군요~
자, 프로젝트를 클릭하고 아래와 같은 곳에 Linked Frameworks and Libraries가 있네요~
말그대로 링크된 프레임워크와 라이브러리가 있어요~
우린 지금 MapKit프레임워크를 추가해야 하므로 +버튼을 눌러줍니다~
MapKit.framework를 Add해줍니다~
자, 이렇게 추가 했으면 잘 실행이 될거예요~
그런데 맵에서 닫기버튼이 동작을 안하면 모달뷰를 닫을 수가 없죠~
이제 버튼 동작을 만들어 봅시다~^^
자, 이거 다 어떻게 하는지 아시죠??
모르면 이 아래 캡쳐에서 오른쪽 위에 Editor가 어떻게 되어있는지 확인해보시구요~
아래 빨간 화살표는, 버튼을 오른쪽버튼 또는 컨트롤 클릭해서 끌어오라는 말씀입니다~^0^
버튼 액션을 요따구로 연결 해주시구요~^^
나머지 두 버튼들도 연결 해줍니다~
또 맵뷰도 똑같이 끌어오는데, 요놈은 액션이 아니라 아울렛으로 연결해주셔야겠죠?^^
요로코롬 연결 해봅니다~
흐미~ 근데 이게 왠 에러!!??
에러 내용을 보니 MKMapView가 Unknown type이라네요..;
얘가 맵뷰를 인식하지 못하고 있어요!!!!!!!!!!!!
그럼 이럴땐 어떻게 해줘야 할까요? 고민고민.. +_+
자, 아까 위에 개발문서에서 MKMapView 클래스를 사용하려면 어떻게 해야 했죠?ㅎㅎ
프레임워크랑 헤더파일을 추가해야 했죠?
헤더파일을 살포시 추가해 줍니다.
이래서 개발문서가 중요하다 중요하다 하는거예요~ 혼자 하다가 모르면 구글보다 요놈이 백만배 빠를수도 있으니까요^^&
짜잔~~~~~~~~~~~~~~
맵을 보셨나요?ㅎㅎㅎ
(p.s 시뮬레이터에서 자신의 위치는 캘리포니아 애플 본사로 찍힙니다.)
아직은 밋밋하고 재미없네요~ 조금 더 해볼까요?
이번에는 내가 있는 곳의 위치를 알아보는 기능도 써보고 싶습니다~
프레임 워크중에 CoreLocation.framework를 추가해줍니다~
짜잔~ 추가해주고 아래와 같은 코드들도 입력해 줍시다~
참, 캡쳐에는 빨간 네모가 없지만 CoreLocation.h 헤더도 import해줍니다~
그리고 나서 SEOUL버튼을 누르면!!!???
지도가 뿅하고 오긴 오는데... 흐음... 확대도 안되고 재미가 없네요 ㅋㅋ
그래서 이동도 되고 확대도 되도록 코드를 조금 바꿔 넣어줘 봅시다~
코드에 대한 설명은 코멘트에^^
짜잔~ 이렇게 서울 시청으로 오네요 ㅎㅎㅎ
그리고 드디어! 내가 있는 곳으로 지도를 움직이고 싶을 때..!! 어떻게 해야 하나???
showUserLocation메소드에 아래와 같이 입력합니다.
그런데 에러...ㅠ_ㅠ
또 뭐가 문제일까요..?
자... 문제에 봉착했다면..?ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
그렇죠 개발문서!
뭔가 의심되는 부분이 있다면 알트키를 누른채로 그녀석 위로 커서를 올리면 손꾸락 모냥이 나옵니다~ 클릭!
그리고 Class reference로 가보는거죠~
MKUserLocation이라는 클래스는MKUserLocation에 선언되어 있군요!?
그렇다면 <MapKit/MKUserLocation.h> 헤더를 추가해 주고 빌드해 봅니다~
그래도... 에러...ㅠ_ㅠ
또다시 의심가는 부분에서 개발문서를 살펴봅니다~ 그 결과 저는 이렇게 두개의 헤더를 추가해줬습니다~
왜 CoreLocation/CLLocation.h 헤더를 추가했는지 여러분들도 찾아 보아용~ 이힛~!ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
(-_- 이런 표정이 되셨다면 죄송...;)
그리고 코드를 이쁘게 적어주고 빌드해봅니다~
빌드성공!!
실행 해 봅니다~
ME, Close, SEOUL 버튼들이 모두 잘 동작하는지 확인합니다~^^*
하아... 힘드네요 ㅠ_ㅠ
이제 아울렛 연결이나 액션 연결... 클래스 생성 등의 소소한거는 캡쳐 그만해야겠어요..ㅋㅋㅋ
요렇게 짧은거 하는데 이미지 캡쳐만 30개..ㅋㅋㅋㅋㅋㅋㅋㅋ
휴휴, 다음에는 또 뭘 해볼까요?
여러분들은 뭐가 더 필요하신가요? 댓글달아주세요~ 진짜 그거 해보게요 ㅋㅋ
저도 맵뷰 처음 써봐서(그래서 개발문서 캡쳐가 많은 것일지도..ㅋㅋ) 부족한 점이 많은데요, 요청하시는게 있으면 배워서라도 포스팅 할게요 ㅋㅋ
그럼 이만 빠바이~
by yagom
twitter : @yagomsoft
p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.
RSS Feed 받기
'iOS Dev > 함께해보기' 카테고리의 다른 글
iOS개발하기 #19. Delegate, Data Source (2)실습해보기~ (26) | 2012.03.30 |
---|---|
iOS개발하기 #18. Delegate, Data Source (1)개념잡기 (24) | 2012.03.26 |
iOS개발하기 #16. 화면전환(2) <pushViewController, popViewController, modal> (37) | 2012.03.15 |
iOS개발하기 #15. 화면전환(1) <addSubview> (67) | 2012.02.13 |
iOS개발하기 #14. 주석(Comment) (12) | 2012.01.29 |