현재 왼쪽 막대 버튼 기본값은 현재 뷰를로드 한 뷰의 제목입니다. 즉, 버튼을 눌렀을 때 표시되는 뷰 (뒤로 버튼)입니다.
버튼에 표시된 텍스트를 다른 것으로 변경하고 싶습니다.
뷰 컨트롤러의 viewDidLoad 메서드에 다음 코드 줄을 넣어 보았지만 작동하지 않는 것 같습니다.
self.navigationItem.leftBarButtonItem.title = @"Log Out";
어떻게해야합니까?
감사.
답변
“NewTitle”이라는 제목의 ViewController를 호출하는 메소드에 배치해야합니다. push 또는 popViewController 문 바로 앞에 있습니다.
UIBarButtonItem *newBackButton =
[[UIBarButtonItem alloc] initWithTitle:@"NewTitle"
style:UIBarButtonItemStyleBordered
target:nil
action:nil];
[[self navigationItem] setBackBarButtonItem:newBackButton];
[newBackButton release];
답변
ChildVC에서 이것은 나를 위해 일했습니다 …
self.navigationController.navigationBar.topItem.title = @"Back";
스위프트에서도 작동합니다!
self.navigationController!.navigationBar.topItem!.title = "Back"
답변
backBarButtonItem에 대한 문서는 다음과 같습니다 .
“이 탐색 항목이 스택의 맨 위 항목 바로 아래에 있으면 탐색 제어기는이 탐색 항목에서 탐색 모음의 뒤로 단추를 파생합니다. […] 뒤로 단추의 사용자 정의 이미지 또는 제목을 지정하려는 경우 대신이 속성에 맞춤 바 버튼 항목 (맞춤 제목 또는 이미지 포함)을 할당 할 수 있습니다. “
View Controller A ( “부모” 보기 컨트롤러) :
self.title = @"Really Long Title";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Short" style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
다른 뷰 컨트롤러 B 가 탐색 스택의 맨 위에 있고 A 가 바로 아래에 있으면 B 의 뒤로 버튼에 “Short” 라는 제목이 있습니다 .
답변
스토리 보드를 사용하는 Xcode 4.5에서 Back 버튼의 값이 동적으로 변경 될 필요가 없을 때 발견 한 가장 쉬운 해결책은 View Controller의 탐색 항목과 관련된 “Back Button”필드를 사용하는 것입니다. “뒤로”버튼으로 다른 것을 말하고 싶습니다.
예를 들어 아래 스크린 샷에서 푸시하는 뷰 컨트롤러의 뒤로 버튼을 누르면 뒤로 버튼의 제목으로 “뒤로”가 표시됩니다.
물론, 매번 약간 다른 것을 말하기 위해 뒤로 버튼이 필요한 경우에는 작동하지 않습니다 … 여기에 다른 솔루션이 모두 있습니다.
답변
나는 그 질문이 매우 오래되었다는 것을 알고 있지만 좋은 해결책을 찾았습니다.
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] init];
barButton.title = @"Custom Title";
self.navigationController.navigationBar.topItem.backBarButtonItem = barButton;
childView에서 작동합니다! iOS 7에서 테스트되었습니다.
답변
어쩌면 나는 단순 해 보이지만 Apple의 문서에서 문구는 다음과 같습니다.
뷰 컨트롤러 중 하나 에서 사용자 지정 막대 버튼 항목을 지정하지 않으면 기본 뒤로 버튼 이 사용되고 제목은 이전 뷰 컨트롤러의 title 속성 값 즉, 한 수준 아래로 뷰 컨트롤러로 설정됩니다. 스택.
위의 올바른 것으로 표시된 솔루션은 상위 컨트롤러의 기본 버튼 항목을 설정합니다. 정답이지만 self.title
새 컨트롤러를 NavigationController 스택으로 푸시하기 전에 UIViewController의 속성을 변경하여 문제를 해결하고 있습니다.
이렇게하면 다음 컨트롤러에서 뒤로 버튼의 제목이 자동으로 업데이트되며, 설정을 self.title
다시 설정하면 viewWillAppear
이 방법으로 너무 많은 문제를 일으킬 수 없습니다.
답변
이것은 나를 위해 더 잘 작동합니다. 시도 :
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc]
initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];