2011-07-25 4 views

答えて

47

試してみてください。

UIWindow *frontWindow = [[[UIApplication sharedApplication] windows] 
                  lastObject]; 

または単に:

UIWindow *frontWindow = [[UIApplication sharedApplication] keyWindow]; 
+0

あなたappDelegateクラスをインポートすることを忘れないでくださいkeyWindowはkeyWindow'が私のためにnilを返さ ' – Eugene

+0

私のためにそれをやりました。 'lastObject'が正しい結果を返しました。どうも。 –

+2

lastObjectではなくfirstObjectを使用する必要があります。 "windows"のドキュメントを参照 – harryhorn

3

あなたはウィンドウ内のいくつかのサブビューへのポインタを持っている場合は、そのウィンドウを簡単にアクセスできます。

UIWindow *window = mySubview.window; 
12

メインウィンドウが最もよく使用されます。UIWindow * mainWindow = [UIApplication sharedApplication].windows.firstObject;

keyWindowを使用すると、アプリケーションウィンドウの上にあるキーボードまたはUIAlertViewウィンドウを返すことができます。

+0

これは正しい解答です!私は、私の頭が壊れて、なぜアラートビューがあるときに私の見解が消えているのか理解しようとしました。 – trickster77777

2

単純に賢いが、任意のクラスから動作します。

[(YourAppDelegate *)[[UIApplication sharedApplication] delegate] window]; 

注:

関連する問題