2012-03-10 9 views
5

ここではかなり新しいです。 UISplitViewの新しいiOS 5.1スライドインポップオーバーに問題があります。 (5.1より前では、マスタービューコントローラはポップオーバーで表示されましたが、今度は左の形式でスライドします) デバイスがポートレートモードでメモリ警告を受け取ると、マスタービューコントローラがアンロードされます。マスタービューでスライドするためにツールバーボタンを押すと、再び読み込まれます。 しかし、メモリの警告の後、元のマスタービューのサイズだけでなく、フルスクリーンで表示されます。 (デバイスを横向きにしてポートレートに戻すと、正しいサイズに戻ります)UISplitView新しいスライドインポップオーバーは、iOS 5.1のメモリ警告後にフルスクリーンになります。

iOS 5.1より前のバージョンでは、常に正しいサイズのポップオーバーで表示されていました。

誰でも考え方がありますが、これを修正する方法はありますか?

私はマスタービューのフレームサイズを設定しようとしましたが、問題は解決しません。

ご協力いただきありがとうございます。

+0

私は同じ質問があります。このスライダを無効にすることはできますか?私はpopoverを好む。おそらく、古いベースのSDKでコンパイルすることは解決策ではありません。 – Ricardo

答えて

5

私は同じ問題を抱えていたが、私は問題を解決するために、このコードを使用:メモリの警告を受信したときどうやら、ビューコントローラがリリースさ

-(void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willPresentViewController:(UIViewController *)aViewController 
{ 
    aViewController.view.frame = CGRectMake(0, 0, 320, self.view.frame.size.height); 
} 

ので、提示したときにそれ自体、それはそれがフルスクリーンである親ビューからサイズを取得します。だから、ロードされるたびにフレームをリセットするだけです。

+0

うわー、素晴らしい!どうもありがとうございました。これは完全に機能します! :) – Joxy

0

私は同じ問題を抱えていました。

以下のコードをAppDelegateに追加する必要があります。

splitViewController.presentsWithGesture = NO;

+0

SplitViewControllerを表示する前に(ビューをウィンドウのビューに追加する前に)設定しなければならないことが判明しました。そうしないと効果がありません。いずれにしても、新しいスライディングウィンドウを元のポップオーバーに戻すことはできません。詳細ビューでスワイプジェスチャで表示する機能が削除されます。 – arlomedia

関連する問題