ios - objc - swift standard library



Swift에서 버튼 텍스트를 다시 설정하는 방법 (14)

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

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

결과는 다음과 같습니다.

전에

https://ffff65535.com

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

current back button: <Back
desired back button: <AnythingElse

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

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 :

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

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

스위프트 4 :

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

스토리 보드에서 NavigationItem을 수정할 수 있습니다

뒤로 단추에서 공백을 추가하고 Enter를 누르십시오.

참고 : 이전 VC에서이 작업을 수행하십시오.


시도해보십시오 ... 작동합니다 ....

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    self.title = ""
}

위의 코드는 텍스트를 숨기고 탐색 모음에 뒤로 화살표 만 표시합니다.


이 답변으로 문제가 해결되지만 유용 할 수 있습니다.

class MainNavigatioController: UINavigationController {

    override func pushViewController(_ viewController: UIViewController, animated: Bool) {
        // first
        let backItem = UIBarButtonItem()
        backItem.title = "رجوع"
        self.viewControllers.last?.navigationItem.backBarButtonItem = backItem
        // then
        super.pushViewController(viewController, animated: animated)

    }

}

이것은 작동해야합니다 :

override func viewDidLoad() {
    super.viewDidLoad()

    var button = UIBarButtonItem(title: "YourTitle", style: UIBarButtonItemStyle.Bordered, target: self, action: "goBack")
    self.navigationItem.backBarButtonItem = button

}

func goBack()
{
    self.navigationController?.popViewControllerAnimated(true)
}

이것이 실제로 backButton을 대체하기 때문에 권장하지 않지만 back arrow와 swipe gesture도 제거했습니다.


self.navigationController?.pushViewController(vc, animated: true) 전에 self.title = "" 설정하십시오.


스위프트 4

이전에 segue를 준비하라는 말은 정확하고 뒤로 버튼은 이전 VC에 속하지만 불필요한 코드를 더 추가합니다.

가장 좋은 방법은 viewDidLoad에서 현재 VC의 제목을 설정하는 것이며 다음 VC에서 자동으로 뒤로 버튼 제목을 설정합니다. 이 라인은 나를 위해 일했다

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

스위프트 4

현재 viewController에서 프로그래밍 방식으로 backButton의 텍스트를 변경하는 한 가지 방법이 있습니다.

navigationController?.navigationBar.items![0].title = "some new text"

스위프트 4- 뷰 컨트롤러를 푸시하기 전에 뒤로 버튼 구성

// if you want to remove the text
navigationItem.backBarButtonItem = UIBarButtonItem()

// if you want to modify the text to "back"
navigationItem.backBarButtonItem = UIBarButtonItem(title: "back", style: .plain, target: nil, action: nil)

스위프트 4.2

let backItem = UIBarButtonItem()
backItem.title = ""
navigationItem.backBarButtonItem = backItem

제시 컨트롤러 viewDidLoad 메소드에서 다음 추가하십시오.

// hide navigation bar title in the next controller
let backButton = UIBarButtonItem(title: "", style:.Plain, target: nil, action: nil)
navigationItem.backBarButtonItem = backButton




swift