Monotouch.Dialog IOS 6分割视图旋转问题

Monotouch.Dialog IOS 6分割视图旋转问题,ios,xamarin.ios,ios6,monotouch.dialog,autorotate,Ios,Xamarin.ios,Ios6,Monotouch.dialog,Autorotate,碰撞。。我还没弄明白,东西是旋转的,但看不见。真奇怪。 我能提供更好的信息以获得帮助吗 还有这个问题!真糟糕,我修不好。(请帮忙 求你了,我死在这里了!有人,有人!:) 因此,我使用的是Monotouch.Dialog,从IOS 6开始,我的splitview控制器的旋转就显得很奇怪 它实际上是旋转的,但是我的细节视图占据了整个屏幕,主视图看起来好像是从屏幕框架上旋转过来的。也就是说,我可以在主视图旋转后的一瞬间看到它,然后它消失了,而细节视图占据了整个屏幕 我添加了必要的ShouldAutor

碰撞。。我还没弄明白,东西是旋转的,但看不见。真奇怪。 我能提供更好的信息以获得帮助吗

还有这个问题!真糟糕,我修不好。(请帮忙

求你了,我死在这里了!有人,有人!:)

因此,我使用的是
Monotouch.Dialog
,从IOS 6开始,我的splitview控制器的旋转就显得很奇怪

它实际上是旋转的,但是我的细节视图占据了整个屏幕,主视图看起来好像是从屏幕框架上旋转过来的。也就是说,我可以在主视图旋转后的一瞬间看到它,然后它消失了,而细节视图占据了整个屏幕

我添加了必要的
ShouldAutorotate
函数,并从IOS 6开始设置
GetSupportedInterfaceOrientations
。就像我说的,它是旋转的,但有什么东西掉了

我试过iOS5模拟器,它能工作,所以它肯定是iOS6的问题

有人知道我应该去哪里找问题吗

编辑:调试时我注意到它没有进入主视图和详细视图的ShouldAutorotate覆盖,只有在分割视图控制器中才进入。在iOS 5中,它正确进入ShouldAutorotateToInterfaceOrientation

以下是我在详细视图和主视图中使用的代码:

public override bool ShouldAutorotate()
    {
        return true;
    }
    [Obsolete]
    public override bool ShouldAutorotateToInterfaceOrientation       (MonoTouch.UIKit.UIInterfaceOrientation toInterfaceOrientation)
    {
        return true;
    }
以下是我在SplitViewController中的代码:

public override bool ShouldAutorotate()
    {
        return true;
    }

    [Obsolete]
    public override bool ShouldAutorotateToInterfaceOrientation(UIInterfaceOrientation requested)
    {
        return requested == UIInterfaceOrientation.LandscapeRight || requested == UIInterfaceOrientation.LandscapeLeft;
        //return requested == UIInterfaceOrientation.Portrait || requested == UIInterfaceOrientation.PortraitUpsideDown;

    }

    public override bool ShouldAutomaticallyForwardRotationMethods {
        get {
            return true;
        }
    }

有人吗?我的工作需要这个,我解决不了这个问题!任何想法都会有帮助

如果不看到代码本身,就很难猜出哪里出了问题。它可能在iOS5.x上工作,因为它将调用旧的选择器(并且因为您的应用程序和/或MonoTouch.Dialog已经支持该功能)

这在iOS6中已被弃用,但为了向后兼容,它仍将被称为,除非您实现它的替换。注意苹果文档中的复数形式替换:

替代演示方法支持的界面方向和首选的界面方向。)

弃用通知并不意味着iOS6不能与旧的API一起工作。剩下的就是添加了一些新的、更好的API,而旧的API可以在将来的iOS版本中删除(到目前为止,删除是非常罕见的)

注意:我建议您停止使用您不支持的iOS版本的旧API(例如,iOS 4.0中不推荐的部分应仅用于支持5.0及更高版本的应用程序)。但是,复制代码以同时支持5.0和6.0最佳API可能不是一个好主意,除非您从中获益(例如新功能)


大多数新的API,不推荐旧的API,都是为了让您的生活更轻松,而不是更困难。

如果不看到代码本身,很难猜出哪里出了问题。它可能在iOS5.x上工作,因为它将调用旧的选择器(并且因为您的应用程序和/或MonoTouch.Dialog已经支持该功能)

这在iOS6中已被弃用,但为了向后兼容,它仍将被称为,除非您实现它的替换。注意苹果文档中的复数形式替换:

替代演示方法支持的界面方向和首选的界面方向。)

弃用通知并不意味着iOS6不能与旧的API一起工作。剩下的就是添加了一些新的、更好的API,而旧的API可以在将来的iOS版本中删除(到目前为止,删除是非常罕见的)

注意:我建议您停止使用您不支持的iOS版本的旧API(例如,iOS 4.0中不推荐的部分应仅用于支持5.0及更高版本的应用程序)。但是,复制代码以同时支持5.0和6.0最佳API可能不是一个好主意,除非您从中获益(例如新功能)


大多数新的API,不推荐旧的API,是为了让你的生活更轻松,而不是更困难。

也不要忘记设置
窗口。rootViewController
(否则旋转在iPad上不起作用)。

也不要忘记设置
窗口。rootViewController
(否则旋转在iPad上不起作用).

嗯,这肯定让事情变得更难了,呵呵。。。但是如果它不工作,旋转,因为IOS6,设备甚至不会旋转,它确实会旋转。是什么导致它将细节视图旋转出屏幕?这是我在细节和主视图中使用的:public override void DidRotate(UIInterfaceOrientation fromInterfaceOrientation){base.DidRotate(fromInterfaceOrientation);this.TableView.SelectRow(lastSelectedQuestion,false,UITableViewScrollPosition.Middle);}public override bool ShouldAutorotate(){return true;}[过时]public override bool ShouldAutorotateToInterfaceOrientation(MonoTouch.UIKit.UIInterfaceOrientation to interfaceOrientation){return true;}这是我在拆分视图控制器中拥有的:public override bool ShouldAutorotate(){return true;}[Observe]公共重写bool ShouldAutorotateToInterfaceOrientation(请求UIInterfaceOrientation){请求返回==UIInterfaceOrientation.LandscapeRight | |请求==UIInterfaceOrientation.LandscapeLeft;//请求返回==UIInterfaceOrientation.Grait | |请求==UIInterfaceOrientation.GraphitoupSideDown;}公共覆盖布尔应该自动向前旋转方法{get{return true;}请编辑您的原始问题。这将更容易阅读,更多的人将看到它(不仅仅是我).嗯,这确实让它现在更难了,呵呵…但是如果它不工作,旋转,因为IOS6,设备甚至不会旋转,它会旋转。是什么导致它将细节视图旋转出屏幕?这就是我在“细节”和“主视图”中使用的