Вызов setFrame от меня не работает - потому что простой вызов mainViewController.view вызывает запуск viewDidLoad до обработки setFrame.
Однако внутри viewDidLoad для вашего контроллера основного представления вы можете вызватьэто, прежде чем делать другие расчеты:
[self.view setFrame:[[UIScreen mainScreen] applicationFrame]];