Swift-탐색 항목에서 뒤로 버튼을 숨기는 방법?


103

지금은 두 개의 뷰 컨트롤러가 있습니다. 내 문제는 두 번째 뷰 컨트롤러로 전환 한 후 뒤로 버튼을 숨기는 방법을 모른다는 것입니다. 내가 찾은 대부분의 참조는 Objective-C에 있습니다. Swift에서 어떻게 코딩합니까?

Objective-C에서 뒤로 버튼 코드 숨기기

[self.navigationItem setHidesBackButton:YES animated:YES];

답변:


366

문서 에 따르면 UINavigationItem:

self.navigationItem.setHidesBackButton(true, animated: true);

30
우스꽝 스러움은 무료입니다.
Greg

58
그것은 Paulw11 @ 당신을 놀라게 수 있지만 일반 사실은 구글에 "스위프트 숨기기 뒤로 버튼"을 입력하고 여기에오고있다 - 난 그냥 그랬던 것처럼 -입니다 빨리 공식 문서에서 텍스트의 연을 통해 갈고보다.
Joseph Beuys 'Mum

4
뒤로 버튼의 이름이 첫 번째 뷰 컨트롤러에 정의되어있는 반면,이를 숨기는 코드는 두 번째 뷰 컨트롤러 (버튼을 표시하는 컨트롤러)에서 구현되어야한다는 점에 주목할 수 있습니다.
XLE_22

38

다음을 사용하는 경우 UITabBarController:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.tabBarController?.navigationItem.hidesBackButton = true
}

저도 똑같지 만 이유를 이해하고 싶습니다. 누구든지 받아 들여지는 대답 과이 접근 방식의 차이점을 알고 있습니까? 내가 생각할 수있는 유일한 것은 상속 모델과 탐색 모음의 정적 버전입니다.
Helmut Granda

1
@HelmutGranda Bruno가 탭 바 컨트롤러를 사용하고 있다는 것을 알게된다면 그 차이입니다. 허용되는 답변의 경우 VC는 탐색 컨트롤러에 내장되어있을 가능성이 높습니다.
cloudcal

@cloudcal 나는 tabBar를 사용하고 있지 않지만 두 답변 모두 작동했습니다. 둘 다 뒤로 버튼을 숨겼습니다. viewController가 화면에 있으면 다르게 동작 할 것이라고 생각한 다음 뒤로 버튼을 숨기고 싶었습니다. 그러나 다시 그들은 둘 다 똑같이 행동했습니다. 나는 그들 사이에 어떤 차이도 찾을 수 없었다. 브루노의 대답이 틀렸다는 말입니다. 순수한 navigationController보다는 차이를 만들지 않습니다. 나는 tabBarController를 시도하지 않았다
Honey

20

빠른

// remove left buttons (in case you added some)
 self.navigationItem.leftBarButtonItems = []
// hide the default back buttons
 self.navigationItem.hidesBackButton = true

navigationItem.hidesBackButton = true가 정답이라는 것이 분명합니다. 왼쪽 버튼이있는 경우라면 이것이 가장 확실한 정답이며보다 완전한 답으로 간주되어야합니다.
truedat101

self.navigationItem.hidesBackButton = true예상대로 작동합니다.
Shahabuddin Vansiwala

9

이것은 UINavigationController 클래스 문서에서도 찾을 수 있습니다.

navigationItem.hidesBackButton = true


1

아래 코드로 시도 할 수 있습니다.

override func viewDidAppear(_ animated: Bool) {
    self.navigationController?.isNavigationBarHidden = true
}

이것은이 질문에 대한 답이 아닙니다.
Boris Nikolic

0

다음은 답변의 버전입니다.

스위프트 5

스토리 보드에서 사용할 수 있습니다.

// MARK: - Hiding Back Button

extension UINavigationItem {

    /// A Boolean value that determines whether the back button is hidden.
    ///
    /// When set to `true`, the back button is hidden when this navigation item
    /// is the top item. This is true regardless of the value in the
    /// `leftItemsSupplementBackButton` property. When set to `false`, the back button
    /// is shown if it is still present. (It can be replaced by values in either
    /// the `leftBarButtonItem` or `leftBarButtonItems` properties.) The default value is `false`.
    @IBInspectable var hideBackButton: Bool {
        get { hidesBackButton }
        set { hidesBackButton = newValue }
    }
}

뷰 컨트롤러의 모든 탐색 항목은 속성 관리자의 상단 섹션에이 새 속성을 갖습니다.


0

그것은 매력처럼 Swift 5에서 나를 위해 일했습니다. viewDidLoad ()에 추가하십시오.

self.navigationItem.setHidesBackButton(true, animated: true)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.