본문 바로가기

Programming/iPhone, Xcode

iPhone SDK Navigation Controller 에 관하여

iPhone SDK 에서 제공하는 Navigation based template 에서 미리 로드된 기능들을 알아보면 아래와 같이 3개 정도가 된다.



1. A view stack for moving between views

사용자가 앞으로 뒤로 이동할때마다 Navigation Controller 에게 적당한 화면을 보여주도록 요청할 수 있다. Navigation Controller 는 사용자가 어디 있는 지 추적하고, 사용자가 뒤로갈 수 있도록 버튼을 제공한다.


2. A navigation bar for buttons and a title

Navigation Contoller 는 보여지는 화면과 상호작용을 하면서 버튼을 보여주기 위해서 navigation bar 와 상호작용을 한다. 

그리고, Navigation Controller 는 사용자가 어디 있는 지 알려주기 위해서 title 도 제공한다.


3. A navigation toolbar for view-specific buttons

Navigation Controller 는 현재 보여지는 것들을 알려주는 버튼을 화면의 아래쪽에 toolbar 로 보여주는 일을 한다.



Navigation Controller 는 View Controller 들의 stack 을 관리한다.

그래서 Navigation Controller 는 자동으로 뒤로가기 버튼 (back button) 을 제공한다. 뒤로가기 버튼에 멋진 뒤로가기 애니매이션을 추가할 수도 있다.





그리고 보통 View Controller 들의 instance 들을 Navigation Controller Stack 에 넣는 방법은 아래와 비슷하거나 같다.


 DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];

 [self.navigationController pushViewController:detailViewController animated:YES];


detailViewContorller 는 DetailViewController 의 instance 이고, 이 instance 를 navigationController 의 stack 에 넣는 일을 하는 메소드는 pushViewController 이고 인자로는 생성한 instance 인 detailViewController 이다. 그리고 화면이동시 애니매이션을 넣는 옵션은 animated 메소드에 YES 라는 인자값을 주면 된다. 간단하다. :)