1

我希望我的应用程序中至少有 iOS6。我尝试使用 Mono 提供的示例项目创建一个标签栏应用程序。我试图删除 ShouldAutorotateToInterfaceOrientation 方法并将其替换为

public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
{
    return UIInterfaceOrientationMask.Landscape;
}

我为两个 ViewController 都这样做了,但方向仍然是纵向的。我还尝试覆盖 ShouldAutorotate 并返回 true,但也没有帮助。我该怎么做才能使我的应用程序仅在横向模式下可用?

我也尝试将部署目标设置为iOS6,但我只能在下拉列表中切换到5.1。

有什么建议么?

编辑:我的安装完全错误。因为我无法选择 ios6 作为部署目标,所以没有任何效果。全新的全新安装后一切正常。

4

3 回答 3

2

就像@svn 所说的那样Info.plist,您的应用程序支持的方向。这可以通过覆盖来进一步定制(例如限制)GetSupportedInterfaceOrientations

但是还有(iOS 6 中的新功能)PreferredInterfaceOrientationForPresentation可以(并且应该)被覆盖。

Apple文档中提供了更多详细信息,包括 iOS6 特定功能。

我也尝试将部署目标设置为iOS6,但我只能在下拉列表中切换到5.1。

听起来您使用的 Xcode 没有 6.0 SDK。请参阅我对您的问题的评论,了解如何检查 MonoDevelop 正在使用什么来构建您的应用程序。

于 2013-01-17T14:47:17.520 回答
1

您还应该在 Info.plist 中设置支持的设备方向

于 2013-01-17T11:13:42.130 回答
1

对于 iOS 5 和 iOS 6 支持,您应该这样做,可悲的是“GetSupportedInterfaceOrientations”有问题,至少对于我的模态!

//iOS 6 support
    public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
    {
        return base.GetSupportedInterfaceOrientations ();
    }

    //iOS 5 support
    //if I don't put it it doesn't work for iOS 5 device but works on iOS 6 simulator
    [Obsolete ("Deprecated in iOS6. Replace it with both GetSupportedInterfaceOrientations and PreferredInterfaceOrientationForPresentation")]
    public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
    {
        return true;
    }

首先确定项目属性以获得津贴。

于 2013-03-23T21:20:19.080 回答