[ios] Swift에서 버튼 텍스트를 다시 설정하는 방법

뒤로 버튼 텍스트를 어떻게 제거합니까?

현재 뒤로 버튼 :

<뒤로

원하는 뒤로 버튼 :

<아무거나

이 중 어느 것도 효과가 없었습니다.

self.navigationItem.backBarButtonItem?.title = "Back"
self.backItem?.title = ""
self.navigationController?.navigationBar.backItem?.title = ""
self.navigationItem.backBarButtonItem?.title = ""
self.navigationController?.navigationItem.backBarButtonItem?.title="Back"
self.navigationController?.navigationBar.backItem?.title = ""
self.navigationController?.navigationItem.backBarButtonItem?.title



답변

뒤로 버튼은 현재 화면에 표시되는 것이 아니라 이전 뷰 컨트롤러에 속합니다 .
뒤로 버튼을 수정하려면 segue를 시작한 뷰 컨트롤러에서 푸시 하기 전에 업데이트해야합니다 .

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let backItem = UIBarButtonItem()
    backItem.title = "Something Else"
    navigationItem.backBarButtonItem = backItem // This will show in the next view controller being pushed
}

스위프트 3, 4 및 5 :

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let backItem = UIBarButtonItem()
    backItem.title = "Something Else"
    navigationItem.backBarButtonItem = backItem // This will show in the next view controller being pushed
}

또는

// in your viewDidLoad or viewWillAppear
navigationItem.backBarButtonItem = UIBarButtonItem(
    title: "Something Else", style: .plain, target: nil, action: nil)


답변

다음과 같이 인터페이스 빌더에서이를 수행 할 수 있습니다.

이전보기 컨트롤러의 탐색 항목을 클릭하십시오

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

속성 관리자에서 뒤로 버튼 텍스트를 원하는 것으로 설정하십시오. 그게 다야 !!

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


답변

뒤로 버튼 텍스트는 상위 뷰 컨트롤러의 탐색 항목 제목에서 가져옵니다. 따라서 이전보기 컨트롤러의 탐색 항목 제목에서 설정 한 내용은 현재보기 컨트롤러의 뒤로 단추 텍스트에 표시됩니다. 상위 뷰 컨트롤러의 viewWillAppear 메소드에서 탐색 항목 제목으로 “”를 넣을 수 있습니다.

self.navigationItem.title = ""

또 다른 방법은

self.navigationController?.navigationBar.topItem?.title = ""

현재 뷰 컨트롤러의 viewWillAppear 메소드에서 탐색 스택이 너무 중첩 된 경우 다른 문제가 발생합니다.


답변

이 3 줄의 코드 ViewController 뒤로 버튼 제목을 변경하려는 곳에 넣을 수 있습니다 .

당신의 override func viewDidLoad() {}.

let backButton = UIBarButtonItem()
backButton.title = "My Back Button Title"
self.navigationController?.navigationBar.topItem?.backBarButtonItem = backButton


답변

뷰 컨트롤러에 xib 파일을 사용하는 경우 뷰 컨트롤러 클래스에서이 작업을 수행하십시오.

class AboutUsViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    edgesForExtendedLayout = []
    setUpNavBar()
}

func setUpNavBar(){
    //For title in navigation bar
    self.navigationController?.view.backgroundColor = UIColor.white
    self.navigationController?.view.tintColor = UIColor.orange
    self.navigationItem.title = "About Us"

    //For back button in navigation bar
    let backButton = UIBarButtonItem()
    backButton.title = "Back"
    self.navigationController?.navigationBar.topItem?.backBarButtonItem = backButton
}

}

결과는 다음과 같습니다.

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


답변

나는 당신이 당신의 질문에 넣은 메소드를 어디에서 사용했는지 알지 못하지만 ViewController클래스 (뒤로 버튼을 변경하려는)에서 viewDidLoad()함수에서 다음 줄을 사용하면 원하는 결과를 얻을 수 있습니다 .

self.navigationController?.navigationBar.backItem?.title = "Anything Else"

결과는 다음과 같습니다.

전에

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

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


답변

뒤로 버튼은 현재 화면에 표시되는 것이 아니라 이전 뷰 컨트롤러에 속합니다. 뒤로 버튼을 수정하려면 밀어 넣기 전에 업데이트해야합니다. viewdidload를 추가하십시오.

스위프트 4 :

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