2

2つのウィンドウを持つアプリを作成しています。ボタンをクリックすると、2番目のウィンドウが表示され、画面が引き継がれます。(2番目のウィンドウの)閉じるボタンを押すと、2番目のウィンドウが画面から消えます。

問題は次のようなものです。2番目のウィンドウが表示されているときに、ホームボタンをダブルクリックしてアプリを終了すると、アプリがジャンプして最初のウィンドウ(元のウィンドウ)が表示され、アプリに戻った後、引き続き最初のウィンドウが表示されますが、キーウィンドウは2番目のウィンドウであるため、すべてのヒットイベントは引き続き2番目のウィンドウに移動します。「閉じる」ボタンがある場所をクリックしない限り、アプリがフリーズしたように見えます。アプリは通常の状態に戻ります。

誰かがこれを経験しましたか?この問題の原因がわかりません。システムがウィンドウを切り替えているようです。

アプリに出入りするたびに発生するわけではなく、たまに発生します。

4

3 に答える 3

1

そのため、問題をどうするかわかりませんでしたが、別の解決策があります。つまり、secondWindow.hidden = NO; で 2 番目のウィンドウを表示します。[secondWindow makeKeyAndVisible] の代わりに;

このようにして、他の多くの問題も解決します (ヒットを最初のウィンドウに渡すときのキー ウィンドウの問題や、アラート ビューやモーダル ビューが表示されるなどの新しいウィンドウがあるなど)。コントロールを手でつかむのではなく、システムにキー ウィンドウの割り当てタスクを処理させます。

これが同じ問題に遭遇した他の人にも役立つことを願っています。:)

于 2013-05-01T20:27:13.187 に答える
0

windowLevelでプロパティを確認することもできますUIWindow

レベルは、各レベル内のウィンドウが先行するすべてのグループのウィンドウの前にグループ化されるように並べられます。たとえば、アラート ウィンドウはすべての通常レベル ウィンドウの前に表示されます。ウィンドウが新しいレベルに入ると、そのレベル内のすべてのピアより前に並べられます。可能な値のリストについては、「UIWindowLevel」を参照してください。デフォルト値は です0.0

2 つのウィンドウを使用して、ビデオ プレーヤーの上に浮かぶ透明なウィンドウを表示するアプリがありました。アラート ビューは昇格したウィンドウ レベルを使用して表示するので、背景ウィンドウのレベルを -1.0 にし、アクティブ ウィンドウのレベルを 0.0 にします。

于 2013-05-01T20:42:27.493 に答える
0

もう一度試すか[currentWindow makeKeyAndVisible];、デザインを変更して、まったく新しいウィンドウではなく、モーダル ビュー コントローラーを操作することができます。

于 2013-01-28T19:49:39.817 に答える