One way to solve this problem is to preload the MFMessageComposeViewController .
It depends on how your application is organized, but you can make controller a property corresponding viewcontroller (or, perhaps, appDelegate , some will argue with it).
So you would call:
self.controller = [[MFMessageComposeViewController alloc] init];
somewhere in viewDidLoad or applicationDidFinishWithLaunching ...
Then you just introduce the controller if necessary.
NOTE. This is not exactly a memory based approach.
source share