I guess my main point is, why should there only be a singleton instance of the class?  Generally speaking, UIViewControllers are managed as properties owned by some parent object that can clean them up and remove them from memory after they're done being used.  Singleton patterns are unusual for UI-based components.