0

次の方法でコントローラーをプッシュしています:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController"     bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];

そこに着くと、どちらにも戻れません

[self dismissViewControllerAnimated:YES completion:nil];

また

[self.navigationController popViewControllerAnimated:YES];

最後のビューを閉じるには何を使用すればよいですか?

4

3 に答える 3

1

解散して行きたい場所へ?

これはルートView Controllerですよね?「見捨てる」ことはできません。別のビュー コントローラーがあり、この VC が 2 番目の VC からプッシュまたはモーダルに提示されている場合は、無視することができます。

ウィンドウはベース キャンバスであり、VC はその上に追加されて表示されます。

あなたの明確化から、連絡先のある最初の VC があり、その contactVC から次のページ (DetailsVC) に移動して、そこから閉じようとしています。

現在行っていることは、ウィンドウを取得し、detailVC をルート VC として作成することです。この方法では、連絡先 VC を閉じることはできません。メソッドのインスタンスを作成し、detail VCナビゲーションdidselectRowAtIndexpathコントローラーcontactsVCを使用してプッシュします。

次に、メソッドを使用してポップできますpopViewControllerAnimated:

これは、開始するための優れたチュートリアルです

于 2013-02-07T12:13:51.557 に答える
0

あなたのコードは「コントローラーを押す」ことではありません。そのコードは基本的に、1つの初期ウィンドウとビューを設定するためのアプリデリゲートにあるものです。

popViewControllerの呼び出しは、pushViewControllerを使用してコントローラーを同じナビゲーションコントローラーにプッシュした後でのみ機能しますが、これはまだ行っていません。

dismissViewControllerの呼び出しは、ビューコントローラーにpresentViewControllerを提示した後でのみ機能しますが、これもまだ行っていません。

于 2013-02-07T12:16:12.790 に答える
0

私は最終的に上記の手法を離れ、伝統的な手法を採用しました。

ViewController *detailViewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
[self.navigationController pushViewController:detailViewController animated:YES];
于 2013-02-09T20:28:02.783 に答える