By the suggestion of SO folk in a previous question (here), I'm in the process of making my primary model object a singleton to share between a "main" view controller and a "settings" view controller. I think this setup will be great once it's complete, but I'm having an issue with laying it out in an MVC-friendly manner.
At the moment, my settings view currently initializes settings on viewDidLoad if none exist (via NSUserDefaults), lays out subviews depending on what buttons are selected (settings view holds all settings button outlets), updates a dictionary of button states when a button is pressed, saves those updated to the NSUserDefaults, updates the settings panel subviews, and sends the button settings to the singleton.
Meanwhile, my singleton converts the button settings to a dictionary of settings that the model object will understand & updates the model object with the information created so the main view controller can update its collection view with the new model objects.
I'm thinking laying out the subviews should be handled by the settings view. My question is am I having the settings view do too much of the problem? If so, should I have my singleton/model object update button states (therefore receiving an array of UIButtons from the view), and handle any NSUserDefaults-related tasks?