You don't need to store pointers to the delegate in the view controllers, you can just do something like:
Code:
SatPointerAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[delegate.rootViewController update];
This way, if you have an "update" method in that view controller, you can force an update anytime. And you might want that view controller to have a list of all it's sub controllers, and force each of them to do an update from that same method. Just iterate through the list, sending an update (or even just "reload") method to each.
You really don't want to be maintaining lots of view controller pointers in the different controllers, because it makes a real mess if you add or delete one.
It also sounds like you're using a database or some other external storage for your data, and accessing it from each view controller to get what that controller needs. I would suggest that you encapsulate all that in a custom class (model class for that data). Then if you need to change the storage mechanism for that data, only the one class needs to know. You might decide to do that to migrate to CoreData in 3.0, for instance.
joe
joe