Tag Archives: Touch

[iPhone] UINavigationController 정리

UINavigationController를 사용할때 쓸만한 내용을 발견하여 정리해 봅니다.

1. 초기화
UINavigationController의 초기화를 위해서는 보통 가장 루트가 되는 뷰컨트롤러를 지정하게 됩니다.

[code]UIViewController *viewController = [[UIViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[/code]

2. 새로운 뷰로 이동하기/빠져 나오기
새로운뷰로 이동하는것은 다음과 이해하시면 좋을것 같습니다. 네비게이션컨트롤러는 기본적으로 스택(Stack)과 같은 구조로 동작을 하며, 눈에 보이는 뷰는 항상 가장 마지막에 삽입된 객체(뷰)가 됩니다.

그래서인지, 뷰를 삽입하고 빼는 메서드들의 이름이 push/pop으로 시작을 하는군요.

[code]// 새로운 뷰 삽입하기
[navController pushViewController:newViewController animated:YES];
 
// 뷰컨트롤러 안에서 – 자기 자신을 네비게이션 컨트롤러에서 제거
[self.navigationController popViewControllerAnimated:YES];
 
// 어디서든지 네비게이션 컨트롤러에 접근 가능할 때
[navController popViewControllerAnimated:YES];[/code]

3. 최상위 뷰로 한번에 이동하기
여러개의 뷰를 통해서 들어가 있는 상태라면 다음과 같은 방법으로 한번에 최상위로 빠져나갈 수 있습니다.

[code][self.navigationController popToRootViewControllerAnimated:YES];[/code]

4. 모달(Modal)뷰 형식으로 띄우기
네비게이션 컨트롤러를 사용하긴 하지만 페이징의 느낌이 들지 않게 별개의 페이지처럼 띄우고 싶을 경우가 있습니다. 다음의 메서드를 사용하여 상단의 네비게이션바조차 나오지 않는 풀스크린의 뷰를 띄울 수 있습니다.

[code]// 모달 뷰 띄우기
[self.navigationController presentModalViewController:modelViewController animated:YES];
 
// 모달 뷰 제거 – 모달 뷰 컨트롤러 내부에서
[self dismissModalViewControllerAnimated:YES];[/code]

참고 : http://qstufie.com/blog/bb/2008/10/uinavigationcontroller-how-to/

iPod Touch 블루투스를 사용할 수 있다?

사용자 삽입 이미지
지난주 회사 회식 때 직원들과 한가지 설전이 있었습니다. 사실 뭐 별 이야기 아니었지만… 내용이 무엇이냐 하면

곧 나올 iPhone OS 3.0의 iPod Touch용 OS가 유출되었다는 것입니다. 그런데 거기서 블루투스를 지원하게 되었다는 이야기 였습니다.

사실 아무생각 없이 하드웨어가 지원을 하지 않는데 OS가 지원한다고 어떻게 블루투스 기능이 생기냐는 것이 저의 주장이었습니다.

하지만 오전에 갑자기 궁금해져서 검색해 보았더니 제 생각이 완벽하게 틀렸다는 느낌을 들게 만들어 주는군요.

실제로 현재의 iPod Touch 2세대에는 나이키+ 리시버를 지원하고 있습니다.

저도 이런것을 지원한다는 것은 알고 있었지만 써본적이 없고 도대체 신발의 모듈과 어떤식으로 통신하게 되는지는 고민도 해본적이 없었네요.

실제로 아이팟 터치에는 블루투스 모듈이 들어가 있습니다.
사용자 삽입 이미지위 사진은 아이팟 터치의 분해 사진입니다. 왼쪽 상단에 작게 써진 Broadcom이라고 써진 장치가 보이시나요?

해당 장치의 모델명은 BCM4325로써 802.11a/b/g with Bluetooth® 2.1 + EDR and FM 을 지원하는 장치입니다.

WIFI와 Blutooth를 동시에 지원하는 장치였다는 것이죠. 이것을 보니깐 믿음이 조금 생기게 되었습니다.

당신의 아이팟 터치 2세대는 단지 나이키+와의 연동을 위해 블루투스를 탑재하였다고요;;; 어찌보면 좋은 기능을 일부러 구현 안해놓은 느낌이랄까요.

예전에 캐논 DSLR을 쓸때의 느낌이 들면서 배신감을 느끼게 되더군요. (사실 이런게 진정한 사업 수완이 아닐까 고민해 봅니다.)

사용자 삽입 이미지그러나! 희소식이 하나 있습니다. iPhone OS 3.0 발표날 Q/A 세션에서 애플의 Greg Joswiak이 아이팟 터치의 블루투스가 “Unlock” 된다는 답변을 하였다고 합니다.

그렇게 되면 Peer-to-Peeer 연결이 가능해 지면서 외부의 블루투스 장치들을 사용할 수 있게 됩니다.

이는 곳 제가 가지고 있는 블루투스 헤드셋을 가지고 외부 장치 없이 음악을 들을 수 있게 됨을 의미하는군요.

아이팟 터치의 iPhone OS 3.0으로의 업그레이드는 사실 무료가 아닙니다. $9.99 인데요. 지금까지 계속되는 새로운 기능들의 발표를 보면 꼭 업그레이드를 하고 싶다는 생각이 듭니다.

국내의 이동통신 시장을 봤을때는 아이폰을 들여 돈안되는 짓을 절대 하고 싶어하지 않을테니 이통사 시장은 진시황제의 불로초를 향한 마음처럼 평생을 자신에게 이득이 되는 것만 찾아가며 하라고 냅두고 아이팟 터치라도 사랑해 주어야 하겠습니다.

그나저나…이런식으로도 돈을 벌 수 있다니 참 신기합니다. 마치 자동차를 샀는데 펌웨어를 업그레이드 했더니 비행기로 변신하더라…하는 느낌이랄까요.

사실 이런 상황이면 고객은 회사에 화를 내야 하는데, 마치 미쳐 생각못한 선물을 받은것 처럼 기뻐하게 된다는 것이죠. ㅎㅎ

참고:
http://www.engadget.com/2009/03/17/2g-ipod-touch-to-have-bluetooth-capability-unlocked-by-iphone-os/
http://www.fudzilla.com/index.php?option=com_content&task=view&id=12683&Itemid=70