0

次の機能を備えたiPadSplitViewControllerアプリケーションがあります。

  • マスター(左側)のビューコントローラーは、shouldHideViewControllerデリゲートメソッドでYESを返すことにより、縦向きと横向きの両方で非表示になります
  • マスタービューコントローラーにはタブバーコントローラーが含まれています
  • 複数のマスター詳細マネージャーを使用して、マスタータブバーでのユーザーの選択に基づいて詳細ビューコントローラーの交換を管理します

アプリケーションがメモリ警告を受信した後にのみ発生する問題があります。マスタービューがスライドインすると(スワイプまたは左バーボタンをタップして)、ビューは事実上空になります。つまり、テーブルビューは含まれず、テーブルビューがあるべき半透明の背景だけが含まれます。タブバーで他のビューをタップすると、マスタービューが正しく読み込まれます。次にタップして問題ビューに戻ると、正しく表示されるようになりました。

もともと私は、ビューが空であるだけでなく、フルスクリーン用のサイズになっているという別の問題を抱えていました。私はこのSOの質問で提案された解決策を介してサイズの問題を修正することができました-解決策では、「メモリ警告を受信すると、View Controllerが解放されるため、再び表示されると、サイズが取得されるようです。フルスクリーンの親ビューからです。したがって、フレームが読み込まれるたびにフレームをリセットする必要があります。」

コードにブレークポイントを設定することで、メモリ警告の後にマスタービューに最初にアクセスしようとしたときに、ViewDidLoadイベントが呼び出された(メモリ警告がなかった場合は発生しません)が、ViewDidAppearイベントとViewWillAppearイベントが発生したことを確認できます。呼び出されません。そのため、アプリはメモリ警告の後にマスタービューをリロードする必要があることを認識していますが、何らかの理由でマスタービューが表示されていないようです。

メモリ警告の後にビューを正しく表示する方法を見つけるのに苦労しています。または、メモリ警告を受信したときにマスタービューがアンロードされないようにするためにすべきことはありますか?

更新:メモリ警告時にマスタービューが表示されている場合、この問題は発生しないことも確認しました。

4

1 に答える 1

2

私はAppleのテクニカルサポートでこの問題を提起しました。彼らの返事は次のとおりでした:

レーダーを検索すると、これはiOS 5.1の既知の問題であり、エンジニアリングはそれを認識していることがわかります。現時点では、メモリの警告が表示されないようにする以外に、この問題の回避策はないようです。

必要に応じて、http: //bugreporter.apple.com/で追加のバグを報告できます 。さらに、これを試して、iOS 6でまだ問題があるかどうかを確認することをお勧めします。問題がある場合は、バグを報告してレーダー番号を送ってください。追跡できるようになります。

私は彼らが提案したように行い、iOS 6で試してみました。問題が発生しなかったため、iOS6で修正されたようです。AppleはiOS5.1のソリューションを提供していませんでした。

于 2012-08-29T01:47:47.000 に答える