2011-03-08 4 views
3

마지막 페이지에 탐색 모음이 없더라도 탐색 모음에 마지막 페이지로가는 뒤로 단추가 있어야합니다. 뒤로 단추를 삽입하고 사용자가 누를 때 일어나는 일을 제어하려면 어떻게해야합니까?UINavigationBar에 '뒤로'버튼을 수동으로 어떻게 추가합니까?

+0

'마지막'페이지의 의미에 따라 다릅니다. – occulus

+0

나는 그가 이전 페이지를 의미한다고 생각한다. – florian

답변

0

단추를 클릭 할 때 인터페이스 작성기에서 호출 할 메서드에 단추를 연결해야합니다. 메서드는 - (IBAction)backAction과 같아야합니다. 메소드의 이름은 당신에게 달려 있지만 리턴 타입을 IBAction으로 선언해야 인터페이스 빌더가 버튼을 거기에 연결할 수 있다는 것을 알고 있습니다.

0

탐색 컨트롤러가보기 컨트롤러를 관리하는 데 탐색 모음이 필요하지 않습니다. 뒤로 버튼을 위조하려는 대신 탐색 컨트롤러를 사용하여 두보기 컨트롤러를 관리하고 첫 번째 컨트롤러에서 탐색 막대를 숨길 수 있습니다. 예를 들어

[self.navigationController setNavigationBarHidden:YES animated:YES]; 

과 같이 컨트롤러의 -viewDidAppear 메서드를 추가 할 수 있습니다. 두 번째 컨트롤러와 비슷한 것을 수행하고 숨겨진 매개 변수에 대해 NO를 전달하여 다시 표시하십시오. (: 메모리에서 입력 테스트되지 않은 코드를,하지만 당신은 시작해야 경고) :

일반적인 경우에, 그러나, 뷰 컨트롤러는 다음과 같이 코드를 사용하여 탐색 모음에 뒤로 버튼을 추가 할 수 있습니다

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:myBackImage style: UIBarButtonItemStylePlain target:self action:someAction]; 
self.navigationItem.backBarButtonItem = backButton; 
[backButton release]; 

버튼을 두드리면 버튼이 해당 액션 (someAction)을 대상 (self)으로 보냅니다.

+0

두보기 모두 동일한보기 컨트롤러에 있습니다. – Andrew

+0

프레임 워크가 사용되는 방식이 아니라는 것을 알고 계십니까? 앱의 디자인과 관련하여 자신의 방향으로 나아가고 싶다면, 이는 당신에게 달린 것입니다. 네비게이션 아이템에 자신 만의 버튼을 설정하는 방법을 보여 주었고, 이는 상관없이 작동해야합니다. 그러나 코코아 터치에는 각 뷰 컨트롤러가 하나의 "화면"을 관리해야한다는 강한 기대가 있습니다. 달리해야 할 중요한 이유가있는 경우를 제외하고, 해당 국제 대회를 무시하면 불필요한 고통의 세계에 빠지게됩니다. – Caleb

+0

@Caleb -이 책을 읽는 사람을위한 메모, 더 이상 컨벤션이 아닙니다. – Sam

-2
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 

[button addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside]; 

[button.titleLabel setFont:[UIFont boldSystemFontOfSize:11.0]]; 

[button setBackgroundImage:[UIImage imageNamed:@"back_norm.png"] forState:UIControlStateNormal]; 

[button setBackgroundImage:[UIImage imageNamed:@"back_click.png"] forState:UIControlStateSelected]; 

[button setBackgroundImage:[UIImage imageNamed:@"back_click.png"] forState:UIControlStateHighlighted]; 

[button setTitle:@" Back" forState:UIControlStateNormal]; 

[button setTitle:@" Back" forState:UIControlStateSelected]; 

[button setTitle:@" Back" forState:UIControlStateHighlighted]; 

button.frame = CGRectMake(0, 0, 48, 30); 

UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithCustomView:button]; 

self.navigationItem.leftBarButtonItem = back; 

[button release]; 

[back release]; 
+1

코드에 주석 달기를 고려해주십시오. – user1211929

관련 문제