Search code examples
iphonerotationlandscape

iPhone rotation won't rotate UIWebView


My view hierarchy looks like this:

tab bar -> navigation bar -> table view -> view 1 -> view 2 (UIWebView)

How can I rotate view 2 so it can be displayed in both landscape & portrait mode?


Solution

  • Heres your fix...just solved the same problem. The issue is the tab bar controller is responding no to the shouldRotate method.

    Ignore the advice in the apple docs and create a subclass for tab view controller. In that subclass handle the shouldRotate

    -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Always returning YES means the view will rotate to accomodate any orientation. return YES; }

    Heres my complete subclass TSTabBarController.h

    #import <Foundation/Foundation.h>
    @interface TSTabBarController : UITabBarController {
    
    }
    
    @end
    

    and the implementation file.

    #import "TSTabBarController.h"
    
    
    @implementation TSTabBarController
    -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
        // Always returning YES means the view will rotate to accomodate any orientation.
        return YES;
    }
    
    
    @end
    

    If you change the class in IB for the tab bar controller you should just work.

    Hope this helps.
    Rich