2011-01-28 7 views
1

私はiOSでショッピングカートを実装しています。UINavigationコントローラの未使用ビューはどうなりますか?

私はUINavigationControllerを使用して、プロセスの各ステップでUIViewControllerを表示しています。ユーザーは、戻るボタンを使用して物を変更することができます。

しかし、彼らが注文を提出した後、私は彼らに戻ってほしくない。ナビゲーションコントローラを使用して戻るボタンなしでビューを表示する正しい方法は何ですか?

これを行うと、以前のUIViewControllerはどうなりますか?彼らは割り当てが解除されていますか?明らかに私はそれらを必要としません。手動で割り当てを解除する必要がありますか?

答えて

1

これらのビューコントローラの割り当てを解除する必要があります。そうでなければ、彼らは漏れ始めます。私は、次のような方法でView Controllerをプッシュすると思います。

MyViewController *myViewController = [[MyViewController alloc] init]; 
[self.navigationController pushViewController:myViewController animated:YES]; 
[myViewController release]; 

このようにしている場合、後でこれらのビューコントローラについて心配する必要はありません。 UINavigationControllerが完了すると、それらは解放されます。

戻るボタンを非表示:最後のビューコントローラのloadViewメソッドに次の行を追加します。

[self.navigationItem setHidesBackButton:YES]; 
+0

はいビューを押しています [戻る]ボタンを使わずに最後のビューを読み込む方法を教えてください。 – Janaka

+0

最後のビューコントローラのloadViewメソッドで、 '[self.navigationItem setHidesBackButton:YES]' – EmptyStack

+0

@Simon - 1つのクイックポイントを設定します。 iOSにはガベージコレクションはありません。 UINavigationControllerは、前述のUINavigationControllerに渡すとビューを保持します。これは参照カウントであり、ガベージコレクションではありません。そうでなければ、いい答えです。 – Moshe

0

あなたがいずれかのようなもので、特定のビューコントローラに行くためにそれを伝えることができます。

[myNavController popToRootViewControllerAnimated:YES]; 

それとも、それをビューコントローラの配列を与えるためにUINavigationController方法もあります、それは提示しなければなりません最初の1つ。

関連する問題