'Swift - How to hide back button in navigation item?

Right now I have two view controllers. My problem is I don't know how to hide the back button after transitioning to the second view controller. Most references that I found are in Objective-C. How do I code it in Swift?

Hide back button code in Objective-C

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


Solution 1:[1]

In case you're using a UITabBarController:

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

Solution 2:[2]

Swift

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

Solution 3:[3]

This is also found in the UINavigationController class documentation:

navigationItem.hidesBackButton = true

Solution 4:[4]

Put it in the viewDidLoad method

navigationItem.hidesBackButton = true 

Solution 5:[5]

That worked for me in Swift 5 like a charm, just add it to your viewDidLoad()

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

Solution 6:[6]

Here is a version of the answer in

Swift 5

that you can use it from the storyboard:
// 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 }
    }
}

Every navigation item of a view controller will have this new property in the top section of attributes inspector

Solution 7:[7]

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

Solution 8:[8]

In SwiftUI

.navigationBarBackButtonHidden(true)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 shim
Solution 2 Marwen Doukh
Solution 3 Amiru Homushi
Solution 4 Rikh
Solution 5 Matan
Solution 6 Stoyan
Solution 7 Pang
Solution 8 Pang