The solution is this: Since my application is trying to support from 4.3+, I have to use a navigation controller for each switch.
from ios6 it seems to delegates to a navigation controller, I have to define my own navigation controller, and also set conditions and functions to change its rotation behavior.
When I load the view, I then do ([self.navigationCOntroller setEnableLandscape: (BOOL) false]). this way you have the full controller of your navigation controller.
NOTE. I tried to override the navigation controller methods, but it seems to be just ignored. (This only happens with ios 6.0), I haven't checked 6.1 yet, so I'm not sure if it is fixed (which please let me know if this happens)
phil88530
source share