问题
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?
回答1:
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
来源:https://stackoverflow.com/questions/2113748/iphone-rotation-wont-rotate-uiwebview