0

NSWindowController に基づいてウィンドウを作成しました...

view2Controller = [[View2Controller alloc] initWithWindowNibName:@"View2"];
[view2Controller showWindow:self];

それはうまく機能し、機能しているウィンドウがあります。
今、私はそれを閉じる必要があります。

exit(0); // closes the entire application
close(0); // does is in the documentation, but it nothing

私は使用する提案を見つけました..

[self dismissModalViewControllerAnimated:YES];

、しかしそれはUIビューにのみ適用されるようで、エラーが発生します。

ここにあるウィンドウを閉じるにはどうすればよいですか?

4

3 に答える 3

2

OS X と iOS のプログラミングを混同しているようです。どちらも Objective-C を実行しますが、OS X だけがinitWithWindowNibNameを使用しています。あなたのタグから、iPhone 向けに開発しているように見えます。

UIViewsおよびUIViewControllersの処理に関するチュートリアルを参照してください。

于 2012-05-30T12:00:11.097 に答える
1

試す[view2Controller removeFromSuperview];

あなたの場合、私はビューベースのアプリケーションを使用します。ウィンドウとビューの違いは、ウィンドウテンプレートがビューコントローラクラスと関連するユーザーインターフェイスファイル(.xib)を作成しないことです。それはあなたに空白のウィンドウを与えるだけです。iOSではウィンドウは1つしかありませんが、そのウィンドウに複数のビューを表示できます。

ビューベースのテンプレートは、ウィンドウベースのテンプレートが実行するすべてのことを実行し、さらに、ビューコントローラクラスとそのクラスのxibファイルを作成します。さらに、その最初のViewControllerをウィンドウに追加します。iOSでは、別のビューを表示する場合は、ほぼ確実に別のビューコントローラークラスが必要になります。ビューコントローラクラスは、それ自体の上にビューを簡単に追加できます。

Windowテンプレートでは最初に0が与えられ、Viewテンプレートでは最初に1が与えられ、最終的に2つのビューに2が必要になるため、Viewテンプレートから始めるのはそれほど手間がかかりません。

于 2012-05-30T11:53:19.517 に答える
0

UIWindowを使用している場合は、これを確認する必要があります。ただし、UIViewControllerを使用している場合は、次の2つの解決策があります。

1.)UIViewControllermodalViewControllerとして表示している場合

[myViewController dismissModalViewControllerAnimated:YES];

2.)それ以外の場合、UIViewController他のUIViewControllerまたはUIWindowからナビゲートした場合は、次のことを試してください。

[self.navigationController popViewControllerAnimated:YES];

UIViewを使用している場合は、次を使用する必要があります。[myView removeFromSuperView];

于 2012-05-30T12:22:50.087 に答える