What you really need is a data model object.
A data model is an object of dedicated class that stores and logically manipulates the applications data. It should be an entirely separate class from either the views or the view controllers. It should universally accessible within the app preferably as a singleton.
(Warrior s solution is a lightweight solution that turns the app delegate into the data model object. It will work for small, quick and dirty apps. It will breakdown as the data grows more complex.)
In your case, controller A would write the collected data to the data model and then it would close its view. Controller B would upon activating, check the data model and read out the information it needed.
The beauty of using the data model is that it has the flexibility of an old style global variable combined with the safety of using a class dedicated to to maintaining the data s
integrity.
For more details see:
Pattern for Ownership and References Between Multiple Controllers and Semi-Shared Objects?
and
Simple MVC setup / design?