기본적으로 뒤로 버튼은 뷰 컨트롤러의 제목을 텍스트로 사용합니다. 뷰 컨트롤러의 제목을 변경하지 않고 뒤로 버튼의 텍스트를 변경할 수 있습니까? 제목이 너무 길어서 표시 할 수없는 뷰 컨트롤러가 있고이 경우 뒤로 버튼의 캡션으로 "뒤로"만 표시하고 싶기 때문에이 기능이 필요합니다.
작동하지 않는 다음을 시도했습니다.
self.navigationItem.leftBarButtonItem.title = @"Back";
감사.
기본적으로 뒤로 버튼은 뷰 컨트롤러의 제목을 텍스트로 사용합니다. 뷰 컨트롤러의 제목을 변경하지 않고 뒤로 버튼의 텍스트를 변경할 수 있습니까? 제목이 너무 길어서 표시 할 수없는 뷰 컨트롤러가 있고이 경우 뒤로 버튼의 캡션으로 "뒤로"만 표시하고 싶기 때문에이 기능이 필요합니다.
작동하지 않는 다음을 시도했습니다.
self.navigationItem.leftBarButtonItem.title = @"Back";
감사.
답변:
시험
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
UINavigationItem에 대한 Apple 문서 의 backBarButtonItem 문서를 살펴보면이를 발견했습니다 .
Marc W의 접근 방식은 어떤 컨트롤러에 적용 할 것인지 파악한 후 훌륭하게 작동했습니다. 맨 위에있는 컨트롤러가 아니라 제목이 다시 지정되는 컨트롤러입니다. 따라서 이것이 탐색 스택 인 경우 :
(bottom) ControllerA -> ControllerB (top)
... 그리고 ControllerB가 맨 위에 있을 때 표시되는 뒤로 버튼에 ControllerA에 대한 더 짧은 제목을 지정 하려면 속성 변경을 ControllerA에 적용합니다 .
따라서 self.title
다른 왼쪽 / 오른쪽 막대 버튼 설정 기와는 달리 의 컨텍스트에 더 가깝습니다.
스토리 보드에서 할 수 있습니다. 돌아 가려는 뷰 컨트롤러 (긴 제목이있는 컨트롤러)를 찾아 탐색 항목을 선택하고 속성 검사기 (Alt + Cmd + 4)를 열고 사용자 지정 뒤로 버튼 제목을 삽입합니다.
고마워요 Marco ... 저를 도왔습니다 ...
여기 내가 한 일이 있습니다.
tableView를 사용하여 다른보기로 이동하는 경우 ... 코드를 입력하십시오.
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
당신의 didSelectRowAtIndexPath
방법에서 ... 첫 번째 컨트롤러의 ... 컨트롤러 A.
컨트롤러 B로 이동하면 버튼 제목이 "뒤로"가됩니다.
뒤로 버튼은 상위 뷰 컨트롤러의 제목에서 텍스트를 가져옵니다.
상위 뷰 컨트롤러 (뒤로 버튼을 누를 때 나타나는 뷰 컨트롤러)에서 자신의 제목을 뒤로 버튼의 원하는 텍스트로 설정합니다.
예를 들어, RootViewController
수업 이 있다고 가정 해 봅시다 . 테이블보기에서 셀을 클릭하면의 인스턴스를 푸시합니다 SecondViewController
. SecondViewController
인스턴스 의 뒤로 버튼이 "Home" 으로 표시되기를 원합니다 .
의 viewDidLoad
방법 RootViewController.m :
self.title = @"Home";
의 viewDidLoad
방법 SecondViewController.m :
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
뒤로 버튼이 "뒤로"로 표시되도록하려면 상위 뷰 컨트롤러의 제목을 @"Back"
;
이것은 나를 위해 더 잘 작동합니다. 시도해보십시오 :
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc]
initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
스토리 보드를 사용하는 경우 :
그게 다야 ...
[self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc]
initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil]];
이것은 나를 위해 일했습니다.
부모 뷰 컨트롤러에서 뷰가로드 될 때 뒤로 버튼을 설정합니다.
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.navigationItem.backBarButtonItem =
[[UIBarButtonItem alloc] initWithTitle:@"title"
style:UIBarButtonItemStylePlain
target:nil
action:nil];
}
autorelease
최신 iOS 버전으로 마지막 에 포함 할 필요가 없습니다 .
도움이 되었기를 바랍니다!
[self.navigationController.navigationBar.backItem setTitle:@"back"];
그것은 나를 위해 작동합니다. "뒤로"를 다른 것으로 바꿀 수 있습니다.
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
나는이 답변이 처음에는 왜 효과가 없었는지 마침내 알았습니다. 스토리 보드에 제목을 설정했습니다. 코드에 제목을 설정할 때. 효과가있다!
self.navigationItem.title = @"Main Menu";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];
내 해결책은 뷰 컨트롤러가 탐색 스택에 푸시 될 때 제목을 설정하고 푸시 된 vc가 닫히기 전에 델리게이트 메서드를 사용하여 재설정하는 것입니다.
그래서 다른 뷰 컨트롤러를 다음과 같이 푸시 할 때 뷰 컨트롤러 호출에 제목 변경을 넣었습니다.
self.pushedVC = [self.storyboard instantiateViewControllerWithIdentifier:@"pushedVCIdentifier"];
self.pushedVC.delegate = self;
[self.navigationController pushViewController:self.pushedVC animated:YES];
self.title = @"Back";
대리자 콜백 함수 (viewWillDissapear에서 호출) :
-(void)pushedVCWillClose:(PushedVC *)sender
{
self.title = @"Previous Title";
}
뒤로 버튼의 텍스트를 변경하고 원래의 왼쪽 화살표 모양을 유지하고 사용자가 뒤로 버튼을 클릭 할 때 작업을 수행하려면 내 " CustomNavigationController "를 살펴 보는 것이 좋습니다 .
// 아래와 같이 이전 뷰 컨트롤러에서 제목을 설정하여이 작업을 수행 할 수 있습니다.
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
//Set Title for this view
self.navigationItem.title = "My Title"
}
override func viewWillDisappear(animated: Bool) {
super.viewWillAppear(animated)
//Set Title for back button in next view
self.navigationItem.title = "Back"
}
뒤로 버튼 제목을 변경하려면 아래 코드를 참조하십시오.
InformationVC *infoController=[[InformationVC alloc]init];[self.navigationController infoController animated:YES];
//Below code changed back button title on InformationVC page.
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Information" style: UIBarButtonItemStylePlain target: nil action: nil];
self.navigationItem.backBarButtonItem = backBarButton;`enter code here`