2

BUMP .. まだこれを理解していません。物は回転しますが、見えません。とても奇妙。ヘルプを得るために、より良い情報を提供できますか?

まだこの問題があります! その本当に悪い私はこれを修正することはできません:(助けてください

BUMP .. ここで死んでください!誰か誰か!:)

それで、私は使用Monotouch.Dialogしていますが、IOS 6以降、スプリットビューコントローラーの回転が奇妙に機能しています。

実際には回転していますが、私の詳細ビューは画面全体を占めており、マスター ビューは画面フレームから回転しているように見えます。つまり、マスター ビューが回転すると一瞬だけ表示されて消え、詳細ビューが画面全体に表示されます。

ShouldAutorotate必要な機能を追加しGetSupportedInterfaceOrientations、IOS 6 以降を設定しました。回転すると言ったように、何かがずれています。

IOS 5 シミュレーターを試してみましたが、動作するので、これは間違いなく IOS 6 の問題です。

他にどこで問題を探すべきか考えている人はいますか?

EDIT:デバッグ中に、マスタービューと詳細ビューの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;
        }
    }

誰かお願いします?仕事でこれが必要なのですが、これを解決できません! どんなアイデアも役に立ちます!

4

2 に答える 2

0

コード自体を見ずに何が問題なのかを推測するのは困難です。shouldAutorotateToInterfaceOrientation:古いセレクターを呼び出すため (また、アプリケーションや MonoTouch.Dialog が既にそれをサポートしているため) 、iOS 5.x で動作する可能性があります。

これはiOS6 では廃止されましたが、代替を実装しない限り、下位互換性のために引き続き呼び出されます。Apple docの複数形の置換に注意してください。

代わりに supportedInterfaceOrientations および preferredInterfaceOrientationForPresentation メソッドをオーバーライドしてください。)

非推奨の通知は、iOS6 が古い API で動作しないという意味ではありません。いくつかの新しい、より優れた API が追加され、古い APIが将来の iOS リリースで削除される可能性があることは残りの部分です(削除はこれまでのところ非常にまれです)。

注: サポートしていない iOS バージョンの古い API の使用をやめることをお勧めします (たとえば、iOS 4.0 で廃止されたものは、5.0 以降をサポートするアプリケーションでのみ使用する必要があります)。ただし、5.0 と 6.0 の両方の最適なAPI をサポートするためにコードを複製することは、そこから何か (新しい機能など) を得ない限り、良い考えではないかもしれません。

古い API を廃止する新しい API のほとんどは、生活を楽にするためのものであり、難しくするためのものではありません。

于 2012-10-09T18:08:55.573 に答える