В приложении Delegate вы можете использовать
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didRotate:)
name:UIDeviceOrientationDidChangeNotification
object:nil];
и определите метод
- (void) didRotate:(NSNotification *)notification
В этом методе выберите новую ориентацию и примените или удалите модальный контроллер вида.
В shouldAutorotateToInterfaceOrientation:
ограничить исходный вид только той ориентацией, которую вы хотите.