shouldAutorotateToInterfaceOrientation未被调用

时间:2012-12-14 09:44:55

标签: objective-c xcode4 ios5

嗨我现在对viewcontroller的方向有疑问。以下是我的.h文件。

@interface IPad_HomeViewController : UIViewController <UINavigationControllerDelegate>{
    UIAlertView *alertWithYesNoButtons;
}
@property (weak, nonatomic) IBOutlet UILabel *lblStatus;

@end

我在.m文件中实现以下方法。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
    return NO;
}
然后我做了一个断点。我意识到shouldAutorotateToInterfaceOrientation完全没有被调用。不知道为什么没有被召唤。

请告诉我。 感谢

2 个答案:

答案 0 :(得分:6)

我认为这是因为您的UINavigationController处理调用。实现以下内容将其发送回viewController。

- (BOOL)shouldAutorotate
{
    return [[self.viewControllers lastObject] shouldAutorotate];
}

- (NSUInteger)supportedInterfaceOrientations
{
    return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}

// pre-iOS 6 support
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}

答案 1 :(得分:0)

在iOS 5和iOS 6之间轮换支持发生了很大变化。

转到项目的目标摘要页面,然后选中“iPhone / Ipod部署信息”和“支持的接口方向”。你启用了设备旋转吗?