'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 |
