在iPhone私有API上设置界面方向

时间:2010-03-05 10:38:24

标签: iphone interface screen-orientation

任何人都可以确认[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait];会让Apple拒绝您的应用。

是否有可用的替代品?

4 个答案:

答案 0 :(得分:4)

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientation]是一个私有API,你可以发现签名只是只读的(参见here)。

如果要将设备方向设置为纵向或其他模式,则应覆盖shouldAutorotateToInterfaceOrientation:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation == UIDeviceOrientationPortrait);
}

答案 1 :(得分:1)

Yes you'll get rejected

您可以更改框架并将变换应用于关键窗口,并更改状态栏方向(公共)以模拟更改方向。

答案 2 :(得分:0)

您可以在app plist中添加UIInterfaceOrientation

答案 3 :(得分:0)

您可以尝试使用此代码。它在我的应用程序上完美运行

UIApplication* application = [UIApplication sharedApplication];
if (application.statusBarOrientation != UIInterfaceOrientationPortrait)
{
    AppDelegate* app = [[UIApplication sharedApplication] delegate];
    UIViewController *c = [[UIViewController alloc]init];
    [app.viewController presentModalViewController:c animated:NO];
    [app.viewController dismissModalViewControllerAnimated:NO];
    [c release];
}

其中app.viewController是应用程序的rootViewController