2012-05-28 2 views
1

이것은 xcode가 기본적으로하는 것입니다. 네비게이션 컨트롤러에서 첫 번째보기를 볼 때 "뒤로"버튼이 헤더에 나타나지 않습니다. 뒤로 단추는 첫 번째보기에서 인스턴스화 된 다른보기로 이동할 때만 나타납니다.iphone app - NavigationController의 홈 버튼을 만드시겠습니까?

첫 번째보기에있는 동안 집 버튼이나 뒤로 버튼이 나타나기를 원합니다. 그것을 클릭하면 rootviewcontroller를 변경하는 것과 같은 특정 동작이 수행됩니다. 이 버튼을 표시하려면 어떻게해야합니까? 첫 번째보기에서만 동작을 재정의하려면 어떻게해야합니까? 다른보기에서는 백 버튼의 동작이 기본값으로 작동합니다.

답변

0

을하는 UIBarButtonItem을 초기화하고 탐색 컨트롤러의 도구 모음에 추가 :

UIBarButtonItem *homeButton = [[UIBarButtonItem alloc] 
           initWithTitle:@"Home" 
           target:[AppDelegate sharedDelegate] 
           action:@selector(changeRootViewController)]; 
[self.navigationItem setLeftBarButton:homeButton animated:NO]; 

target 응용 프로그램 위임 클래스의 경우이어야한다 루트보기 컨트롤러를 스왑하려고합니다. 보기 제어기 스왑을 수행하려면 changeRootViewController이라는 클래스에 메소드를 작성하십시오.

initWithImage:을 사용하는 텍스트 대신 이미지를 사용하도록 homeButton을 변경할 수 있습니다.

0

이 시도 : 루트 뷰 컨트롤러의 viewDidLoad 방법

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
NSString* backBtnImg = @"myImage"; 
UIImage *buttonImage = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:backBtnImg ofType:@"png"]]; 
[button setBackgroundImage:buttonImage forState:UIControlStateNormal]; 
[button setTitle:@"back" forState:UIControlStateNormal]; 
[button addTarget:self action:@selector(myAction) forControlEvents:UIControlEventTouchUpInside]; 
[button setFrame:CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height)]; 

UIBarButtonItem *btnItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 
self.navigationItem.leftBarButtonItem = btnItem; 
관련 문제