Or do I have to do it the other way round? i.e. support all orientations and then disable for all the screens I don't want to rotate?
Yes. You must list for the Info.plist all the orientations you will support. Then limit particular view controller orientations with supportedInterfaceOrientations
. Your one landscape view controller must be presented, i.e. use a "modal" segue or call presentViewController:animated:
.
My answer here may be useful:
https://stackoverflow.com/a/13755923/341994
and my answer here: