Skip to content
DeveloperMemos

Hiding the Navigation Bar in UIKit with setNavigationBarHidden

UIKit, Navigation Bar, Swift1 min read

Have you ever wanted to hide the navigation bar in your iOS app to provide a more immersive user experience or to customize the navigation flow? In UIKit, Apple's framework for building iOS applications, you can easily achieve this by using the setNavigationBarHidden method. In this article, we will explore how to use this method and provide some examples to get you started.

Hiding the Navigation Bar

The setNavigationBarHidden method allows you to show or hide the navigation bar within your view controller. It is a method provided by the UINavigationController class, which is responsible for managing the navigation stack and displaying the navigation bar.

To hide the navigation bar, you can simply call the setNavigationBarHidden method and pass true as the first argument. Here's an example of how you can use it in a view controller's viewWillAppear method:

1override func viewWillAppear(_ animated: Bool) {
2 super.viewWillAppear(animated)
3 navigationController?.setNavigationBarHidden(true, animated: animated)
4}

In this example, we override the viewWillAppear method and call the setNavigationBarHidden method with true. By passing true, we are indicating that we want to hide the navigation bar. The animated parameter allows you to specify whether the change should be animated or not.

Showing the Navigation Bar

If you want to show the navigation bar again, you can call the setNavigationBarHidden method with false. Here's an example:

1override func viewWillAppear(_ animated: Bool) {
2 super.viewWillAppear(animated)
3 navigationController?.setNavigationBarHidden(false, animated: animated)
4}

In this case, we pass false as the first argument to indicate that we want to show the navigation bar. Again, the animated parameter controls whether the change should be animated or not.

Conclusion

The ability to hide the navigation bar in your UIKit app gives you more control over the user interface and allows for a more immersive experience. By using the setNavigationBarHidden method provided by UINavigationController, you can easily hide or show the navigation bar whenever needed.