Tag Archives: 아이팟

[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/

[iPhone] 임의로 키보드 띄우기

보통은 UITextField 혹은 UITextView를 사용함에 있어 사용자가 해당 영역을 클릭하면 키보드가 나오면서 편집모드로 들어가게 됩니다.

하지만 특정 뷰를 띄우면서 바로 특정 필드를 편집하고 싶다면? 키보드를 띄우면 되겠죠?
becomeFirstResponder를 사용하시면 됩니다.

[code]UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0.0f, 20.0f, 320.0f, 200.0f)];
[textView becomeFirstResponder];
[window addSubview:textView];
[textView release];[/code]
사용자 삽입 이미지어플리케이션을 실행하자 마자 키보드가 나오고 커서가 위치하고 있는것을 알 수 있습니다.
1030176275.zip