我有一个主视图,其中包含uitableview,当用户点击一行时,我正在推送另一个视图。我只希望子视图旋转并为此编写代码。但问题是,一旦我推动视图,它还可以在主视图上启用方向。当我将主视图向左旋转时,状态栏也会更改为左侧。我没有在主视图上应用任何方向。我在MainView上完成了以下操作但代码仍然状态栏没有改变。
-(void) viewDidLoad
{
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(receivedRotate:) name: UIDeviceOrientationDidChangeNotification object: nil];
}
-(void) receivedRotate: (NSNotification*) notification
{
UIDeviceOrientation interfaceOrientation = [[UIDevice currentDevice] orientation];
if(interfaceOrientation != UIDeviceOrientationUnknown)
{
if (interfaceOrientation==UIInterfaceOrientationLandscapeLeft)
{
[self shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}
}
}
有人可以帮助我????它有点紧急......我如何在主视图中禁用interfaceOrientation
答案 0 :(得分:1)
在主视图控制器中,覆盖此委托:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation; // Override to allow rotation. Default returns YES only for UIDeviceOrientationPortrait
{
if((toInterfaceOrientation == UIInterfaceOrientationLandscapeRight))
return YES;
return NO;
}
现在您的主视图控制器将始终处于横向模式。 并删除上面提到的所有代码。 你不应该调用“shouldAutorotateToInterfaceOrientation:”方法。