Monotouch Only风景iOS6

时间:2013-01-17 09:52:38

标签: ios xamarin.ios uiinterfaceorientation deployment-target

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

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

我为两个ViewController都做了,但方向仍然是Portrait。我也试图覆盖ShouldAutorotate并返回true,但也没有帮助。如果我的应用仅以横向模式可用,我该怎么做?

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

有什么建议吗?

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

3 个答案:

答案 0 :(得分:2)

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

但也有(iOS 6中的新内容)PreferredInterfaceOrientationForPresentation可以(并且应该)覆盖。

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

  

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

这听起来像你正在使用的Xcode没有6.0 SDK。请参阅我对您的问题的评论,了解如何查看MonoDevelop用于构建应用程序的内容。

答案 1 :(得分:1)

您还应在Info.plist

中设置支持的设备方向

答案 2 :(得分: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;
    }

首先确定项目属性是否为津贴。