[ios] UINavigationController“뒤로 버튼”사용자 정의 텍스트?

기본적으로 “뒤로 단추” UINavigationController는 스택의 마지막보기 제목을 표시합니다. 뒤로 버튼에 사용자 정의 텍스트를 넣는 방법이 있습니까?



답변

에서 이 링크 :

self.navigationItem.backBarButtonItem =
   [[UIBarButtonItem alloc] initWithTitle:@"Custom Title"
            style:UIBarButtonItemStylePlain
           target:nil
           action:nil];

타일러가 댓글에서 말했듯이 :

보이는 뷰 컨트롤러 에서이 작업을 수행하지 말고 뒤로 버튼을 누르면 볼 수있는 뷰 컨트롤러 에서이 작업을 수행하십시오


답변

인터페이스 빌더에서 텍스트를 설정할 수 있습니다.

뒤로 버튼으로 돌아갈 ViewController의 탐색 항목을 선택하십시오.

여기에 이미지 설명을 입력하십시오

유틸리티 패널 속성 관리자에서 뒤로 버튼에 대한 레이블을 입력하십시오.

여기에 이미지 설명을 입력하십시오

허용 된 답변과 같이 코드에서 제목을 설정하는 것 보다이 접근법을 선호합니다.

또한 뷰 컨트롤러에서 스택을 한 수준 높이기 위해이 작업을 수행해야합니다. 다시 말해서, 보이는 뷰 컨트롤러에서이 작업을 수행하지 말고 뒤로 버튼을 눌렀을 때 표시되는 뷰 컨트롤러에서이 작업을 수행하십시오.
타일러


답변

나는 이것을 사용한다 :

// In the current view controller, not the one that is one level up in the stack
- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationController.navigationBar.backItem.title = @"Custom text";
}


답변

다음과 같이 다른 컨트롤러를 스택에 푸시하기 전에 컨트롤러 제목을 설정하여 편리한 솔루션을 찾았습니다.

self.navigationItem.title = @"Replacement Title";
[self.navigationController pushViewController:newCtrl animated:YES];

그런 다음 다음 viewWillAppear과 같이 원본 제목을 설정하십시오 .

-(void)viewWillAppear:(BOOL)animated
{
  ...
  self.navigationItem.title = @"Original Title";
  ...
}

UINavigationController푸시 작업 중에 뒤로 버튼을 구성 할 때 의 기본 동작은 이전 컨트롤러의 제목을 사용하는 것이므로 작동합니다 .


답변

뒤로 버튼의 제목은 기본적으로 이전보기의 제목으로 설정되므로 사용하는 빠른 트릭은 이전보기의 .m 파일에 다음 코드를 배치하는 것입니다.

-(void)viewWillAppear:(BOOL)animated {

    // Set title
    self.navigationItem.title=@"Original Title";
}

-(void)viewWillDisappear:(BOOL)animated {

    // Set title
    self.navigationItem.title=@"Back";
}


답변

init 메소드에서 다음 코드를 추가하십시오.

- (id)initWithStyle:(UITableViewStyle)style {
    if(self = [super init]) {

        //...

        UIBarButtonItem *customBackButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
                                             style:UIBarButtonItemStylePlain
                                            target:self
                                            action:@selector(goBack)];
        self.navigationItem.leftBarButtonItem = customBackButton;
        [customBackButton release];

        //...
    }
    return self;
}

그런 다음 viewcontroller가 해제되도록 간단한 방법을 추가하십시오.

-(void)goBack {
    [self.navigationController popViewControllerAnimated:YES];
}


답변

viewDidLoad 또는 loadView에 다음 코드를 추가하십시오.

self.navigationController.navigationBar.topItem.title = @"Custom text";

iOS 9이 설치된 iPhone 및 iPad에서 테스트했습니다.