Я думаю, что ваши подозрения верны. Вы должны будете добавить подпредставление к каждому контроллеру представления. Я не знаю почему, но когда вы добавляете несколько представлений в качестве подпредставлений окна, только первое получает его - (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation, вызываемый при каждом изменении ориентации.
Я не пробовал этого, но, похоже, вы могли бы создать отдельный родительский контроллер представления, который вы добавили в качестве подпредставления окна, которое будет содержать ваш контроллер навигации, а также контроллер оверлейного представления. Возможно это правильно вызвало бы -shouldAutotrotateToInterfaceOrientation. Опять же, это гипотетически, поскольку я не пробовал, но я уверен, что это не сработает, просто добавив вид наложения в окно.
С наилучшими пожеланиями,