오늘의 주제
- UIWebView
- UIWebViewDelegate
스물 여덟번째 시간입니다.^^
지난 번에는 웹뷰를 만들고 화면에 웹페이지를 띄워 만들어 보았습니다.
자 그럼 오늘은 웹뷰와 함께 이것저것 해 보아야 겠지요?ㅎ
긴 말 없이 시작해 봅니다 ㅎㅎ
UIWebView - delegate
웹뷰를 화면에까지 띄워보았으니 이제는 앞으로 가기 뒤로가기 등,... 버튼 동작들을 구현해 봅니다.
자, 일단은 지난번에 버튼들에 태그를 달아 두었던 것 기억하시죠?
그 태그를 보다 직관적으로 표현해 보기 위하여 #define과 enum을 사용하여 구현해 보았습니다.
define과 enum은 뭐냐구요?
아... 음... C에서 나오는 녀석들인데,
제가 C 카테고리에서 포스팅 한 줄 알고 있었는데, 아직 포스팅을 안했네요 ㅠㅠ
iOS에 너무 열중을 하다보니;;ㅎㅎ
C 카테고리에서 포스팅 했습니다..ㅎ
한 번 읽어보세요..^^
2012/05/14 - [C] - C <15>. 전처리자
2012/05/24 - [C] - C <20>. enum
그냥 말 그대로 define (정의) 해 주는 전처리자 입니다.
전처리자는 뭐냐구요?
말그대로 전처리, 전에 미리 처리해 놓는다 이런거구요. 깊이 생각하실 필요없고 그냥
변수처럼 쓰이지만 바꿀 수 없는 static한 변수입니다.
물론... 변수와는 큰 차이가 있습니다만, 무시하세요 ㅎㅎ
이렇게 define과 enum을 사용하여 미리 태그들을 직관적으로 표현해 봅니다. 둘 중 하나만 해도 됩니다.
저는 그냥 아주 약간의 테크닉을 소개해 드리고자 이렇게 두 가지 표현 다 사용 해 본 것 뿐입니다..^^;
그리고 내려와서 지난 번에 만들어 두었던 barButtonClick: 메서드를 알차게 채워줍니다^^
짜잔~
실행해 보고 버튼을 눌러봅니다~
잘 동작 되시나요?ㅎ
그런데 코드에서 보면... 네 번째 function 버튼의 동작과 모양이 일치하지 않음을 알 수 있습니다. 그러면 웹뷰의 동작 상태에 따라
버튼의 모양을 상황에 맞게 변경해 주어야 겠지요?ㅎ
그러면 누군가 웹뷰의 상태를 보면서 웹뷰가 특정 행동을 할 때, 그에 맞는 상황 대처를 해 주어야 합니다.
그 녀석이 뭐라고 했죠?
네 맞습니다! delegate !!
UIWebView - delegate
자, 그러면 Web View의 딜리게이트에 대해 알아봐야겠습니다 ㅎㅎ
검색을 알차게 해 봅니다~
아직도 Documentation의 단축키를 모르신다구요?
ㅠㅠ Command + Alt + Shift + / 입니다.
자, 그렇게 해서 레퍼런스를 찾아보니, 딜리게이트가 해줄 수 있는 일들이 나오네요 ㅎ
우리가 필요한 것은 웹뷰가 로딩을 시작할 때, 그리고 끝냈을 때 입니다.
왜냐구요? 로딩을 시작하면 정지 버튼으로 변경 해 주고, 로딩이 끝나면 새로고침 버튼으로 변경 해줘야 하니까요 ~
자, 그럼 이 녀석들에 대한 설명을 읽고, 이녀석이다 싶으면 메서드를 복사 해 옵니다~
Bar Button은 툴바 안에 속해 있는 녀석이죠.
일단 그 녀석을 변경해 주려면 툴바의 도움이 필요할 것 같군요~
툴바의 아울렛을 선언 해 줍니다.
이렇게 이쁘게 연결이 되었겠죠?ㅎ
그리고 알차게 코드를 폭풍입력!!!!!!!!!!!!!
코드에 대한 설명은 주석으로 알차게 달려있답니다^^
그리고 나서 동작 상태에 따라 버튼모양이 이쁘게 변하는지 확인 해 봅시다~
어떤가요?ㅎ
딜리게이트라는 녀석 참 오묘하고 재미나지 않나요?
오늘은 여기 까~지~^^
다음에 또 만나요~
by yagom
p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.