Singleton or delegation for shared data between view controllers
<p>I have searched through SO looking for different ways to share data between view controllers.  I see that delegation to pass back data are the most common way ppl suggest, and that some ppl use singletons for the information to be available from anywhere in the app.  I am not familiar with Core Data yet, but from what i've looked at so far, it seems like Core Data is similar to a Singleton in that from the ManagedObjectContext, you can access the data.  So as long as you have a reference to that object, you can access that data (feel free to correct me if that understanding is wrong).  </p>

<p>In this scenario, I was wondering if delegation or singletons should be used.  I basically have a tab bar controller with two tabs.  One tab passes data back and forth between the views using delegation or assigning a property on the view to be presented.  </p>

<p>The second tab is a summary view of the first tab.  So on a completely different stack of views, I need that same data that was in Tab one.  In that scenario, should I be using a  Singleton so it can be accessed from everywhere in the app?  Or is there a better solution?  </p>

<p>Also, I'm wondering what you would do about archiving your data if your application is about to be closed.  It seems like to me, if I did implement a singleton, when I receive the notification that my app is going to enter the background, I can look in my singleton and save the data.  But if I don't use a singleton, how would I save the data when the app enters the background.  Do I put that saving code in the app delegate instead.  </p>

<p>I guess in the end I'm trying to understand what design pattern is better in this scenario for archiving and sharing data between the app.  Thanks!</p>
