0

私のアプリには、mainWindow (ほぼすべてのビュー用) とloginWindow (ログイン ビュー用) の 2 つのウィンドウがあります。mainWindowをloginWindowapplicationDidEnterBackgroundに切り替えると、のようになります。

[self.loginWindow makeKeyAndVisible];
[self.mainWindow setHidden:YES];

アプリに戻ると、そのビューを含む loginWindowが表示されます。それはうまくいきます。

ただし、 mainWindowmodalViewのプレゼンテーションに問題があります。ウィンドウが再び切り替えられた後。mainWindow に戻った後、modalView は表示されません。applicationDidEnterBackground

メソッドself.modalViewControllerは、以前に提示されたものとまったく同じmodalViewものを提供しますが、もう表示されていません。

この modalView をもう一度表示しようとしましたが、次のような運がありませんでした:

[self presentModalViewController:self.modalViewController animated:NO];

この非表示の modalView をもう一度「再提示」するにはどうすればよいですか?

4

2 に答える 2

1

おそらくここにいくつかのロジックが必要です。クリオが述べたように、背景に入るときはそれを却下しますが、プロパティまたはsmthでそれを覚えておいてください。そうしないと。

// applicationDidEnterBackground
self.savedModalViewController = self.modalViewController;
[self.mainWindow dismissModalViewControllerAnimated:NO];

// after login but before presenting the mainWindow again
[self.mainWindow presentModalViewController:self.savedModalViewController animated:NO];
于 2013-01-08T14:21:35.433 に答える
0

「modalView」をモーダルで表示している場合はapplicationDidEnterBackground、モーダル ビューを閉じます。

[self.mainWindow dismissModalViewControllerAnimated:NO];

その後、モーダルは正常に機能するはずです。

于 2013-01-08T14:05:27.243 に答える