[ios] iOS UIBarButtonItem의 제목 텍스트 제거

내가하고 싶은 UIBarButtonItem것은 탐색 표시 줄에 파란색 쉐브론 만 남기고 의 ‘뒤로’버튼에서 텍스트를 제거하는 것 입니다. iOS 7 용으로 개발 중임을 명심하십시오. 다음과 같은 여러 가지 방법을 시도했습니다.

이것은 내가 좋아하지 않은 이미지 방법입니다 (이미지가 제대로 보이지 않았습니다).

UIBarButtonItem *barBtnItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"iOS7BackButton"] style:UIBarButtonItemStylePlain target:self action:@selector(goToPrevious:)];
self.navigationItem.leftBarButtonItem = barBtnItem;

내가 시도한 또 다른 방법은 이것이 작동하지 않았습니다 (아무것도 표시되지 않음).

UIBarButtonItem *barBtn = [[UIBarButtonItem alloc]init];
barBtn.title=@"";
self.navigationItem.leftBarButtonItem=barBtn;

내가 달성하고 싶었던 것은 단일 셰브론 만 특징 인 iOS 7 Music 앱의 뒤로 버튼과 같은 것입니다.

감사.



답변

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-60, -60)
                                                         forBarMetrics:UIBarMetricsDefault];

그런 다음 뒤로 단추 항목 제목을 제거 할 수 있습니다.

스토리 보드를 사용하는 경우 탐색 속성 관리자 뒤로 버튼을 공백으로 설정할 수 있습니다.


답변

제목을 변경하지 않고 뷰 컨트롤러의 뒤로 단추 제목을 설정하려면 다음을 사용하십시오.

목표 -C :

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

빠른:

navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)

분명히, 이것은 뒤로 버튼을 눌렀을 때 볼 수있는 뷰 컨트롤러에서 수행됩니다. 즉, ‘<Settings’를 보는 대신 ‘<‘를보고 싶은 경우 SettingsViewController에서이를에 넣으십시오 init. 그러면 뷰 컨트롤러 자체를 볼 때 제목에 표시되지 않는 문제가 발생하지 않습니다.


답변

스토리 보드를 사용 Attributes Inspector하는 경우 ViewController 로 이동하여 Navigation Item(을 클릭 Navigation Bar) Back Button속성을 “”(한 공백 문자)로 설정할 수 있습니다. 뒤로 단추 제목을 공백 문자 하나로 설정하여 갈매기 모양 표시를 유지합니다. 코드를 망칠 필요가 없습니다.

이미지 예

이렇게하면 이 컨트롤러 내부에 표시 되는 것이 아니라 상단 버튼을 눌렀을 때이 View Controller에 표시되는 뒤로 단추의Back Button 제목 이 설정 됩니다.Back Button


답변

이것은 텍스트없이 ‘뒤로’쉐브론을 표시하는 데 효과적입니다.

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

viewDidLoad탐색 막대를 표시하는 View Controller 에서이 속성을 설정 하면 트릭이 수행됩니다.

참고 : iOS 7에서만 문제를 테스트했습니다.


답변

버튼 제목을 설정할 때는 @ “”대신 @ “”를 사용하십시오.

–편집하다–

다른 줄을 시도 할 때 어떤 변화가 있습니까? 다음 코드를 성공적으로 사용하고 있습니다.

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:backString style:UIBarButtonItemStyleDone target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];

backString은 iOS 7 이하 버전인지에 따라 @ “”또는 @ “Back”으로 설정되는 변수입니다.

한 가지 주목할 점은이 코드가 뒤로 버튼을 사용자 정의하려는 페이지의 컨트롤러에 없다는 것입니다. 실제로 네비게이션 스택에 컨트롤러 앞에 있습니다.


답변

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

때로는 상황에 맞는 것을 보는 것이 도움이됩니다. 다음은 “뒤로”텍스트를 숨기지 만 여전히 화살표를 표시하는 최소 프로젝트입니다.

스토리 보드

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

“두 번째 뷰 컨트롤러 표시”버튼에서 두 번째 뷰 컨트롤러로 표시되는 쇼가 있습니다.

또한 제목을 갖도록 탐색 항목을 두 번째보기 컨트롤러에 추가했습니다. 이것은 선택 사항입니다. 뒤로 버튼에는 영향을 미치지 않습니다.

암호

FirstViewController.swift

import UIKit
class FirstViewController: UIViewController {

    @IBAction func showSecondViewControllerButtonTapped(sender: UIButton) {

        // hide the back button text
        navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
    }
}

SecondViewController.swift

import UIKit
class SecondViewController: UIViewController {
    // Nothing at all needed here
}

대체 방법 (IB 만, 코드 없음)

스토리 보드에서 첫 번째 보기 컨트롤러 (두 번째 아님) 의 탐색 항목을 선택하십시오 . 뒤로 버튼 텍스트를위한 공간을 입력하십시오.

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


답변

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