Executing Actions When UINavigationController Back Button is Pressed in Swift

Executing Actions When UINavigationController Back Button is Pressed in Swift

28 February 2025 Stephan Petzl Leave a comment Xcode

In iOS development, it is often necessary to trigger specific actions when the back button of a UINavigationController is pressed. For instance, you might want to clear an array or save data before navigating back. This article explores effective methods to achieve this using Swift, ensuring that the default behavior and appearance of the back button are maintained.

Using viewWillDisappear Method

The most straightforward and non-intrusive method is to utilize the viewWillDisappear method in your ViewController. This method is called just before the view is removed, making it a convenient place to execute your code. Here’s how you can implement it:

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    if self.isMovingFromParent {
        // Your custom code here, e.g., emptying an array
    }
}

The property isMovingFromParent returns true when the view controller is being removed from its parent, typically when the back button is pressed.

Alternative: Custom Back Button

While the above method is effective, another approach involves creating a custom back button. However, this approach may lead to losing the default aesthetics and behavior of the back button, which is often undesirable. Therefore, it’s generally recommended to use the viewWillDisappear method unless specific customization is required.

Real-World Application and Further Resources

For developers seeking to streamline their app testing process, integrating automated testing tools can be beneficial. Repeato, a no-code test automation tool, offers a seamless solution for testing iOS, Android, and web applications. Its capabilities, such as test recording and execution based on computer vision and AI, provide a robust platform for developers to maintain app quality efficiently.

Repeato supports running command line scripts and JavaScript code to automate complex tasks, making it a practical alternative to tools like Katalon. For more information on how Repeato can enhance your testing workflow, consider exploring our documentation and blog for additional insights.

By leveraging the appropriate method to execute actions on back button press and utilizing advanced testing tools like Repeato, developers can enhance both the functionality and reliability of their iOS applications.

Like this article? there’s more where that came from!