Many iOS developers make serious architectural mistakes when passing data between view controllers.
There are many ways to do this, but they are not all good. Only a few of them are the best practices.
Quick and easy solutions like singletons often lead to severe problems you will discover only later.
If you want to be a skilled iOS developer, you need to know the architecture behind view controller communication.
In this article, I will show you the best practices to pass data both forward backward. We will also discuss some advanced techniques, and the solutions you should not use.
Matteo has been developing apps for iOS since 2008. He has been teaching iOS development best practices to hundreds of students since 2015 and he is the developer of Vulcan, a macOS app to generate SwiftUI code. Before that he was a freelance iOS developer for small and big clients, including TomTom, Squla, Siilo, and Layar. Matteo got a master’s degree in computer science and computational logic at the University of Turin. In his spare time he dances and teaches tango.



