0

インターネットでそれに関する情報がすでにたくさんあることは知っていますが、プログラミングは初めてで、少し混乱しています。助けが必要です...たとえば、10個のビューコントローラーがあり、ボタンで切り替えます。

    -(IBAction)goToSecondView:(id)sender {

 SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
 [self presentModalViewController:secondView animated:NO];
 [secondView release];
    }
   /* or */


-(IBAction)goToSecondView:(id)sender {

SecondViewController *secondView = [[SecondViewController alloc]
initWithNibName:@"SecondViewController" bundle:nil]; [self.view addSubview:secondView.view];
[secondView release];
}

必要に応じて、最初のビューを削除するように切り替えた場合:

[self.view removeFromSuperview]; /* or */ [self dismissModalViewControllerAnimated:YES];

そして、2番目に切り替えるときに最初のビュー削除する方法わからない. SecondView ...どうすればそれができますか?サンプルコードを作成していただけますか? 私はそれが非常に簡単であることを知っていますが、私にとってはそうではありません。プログラミングは初めてです

- - - - - - - - - - アップデート - - - - - - - - - - - - - - - ------------------------------------

> here <のようなものを作りたいのですが、すべてを理解していないので、サンプルコードを作成してもらえますか?.

どうもありがとうございます

4

2 に答える 2

0

これらの方法のどれを使用するか (または別の方法を使用する必要があるか) は、何を達成しようとしているかによって異なります。

他のすべてのビューをリストした 1 つのビューがあり、最初のビューと別のビューの間を行ったり来たりしたいだけの場合は、presentModalViewController:otherView アプローチで問題ありません。他のビューを最初のビューのサブビューとして追加し、それを完全に覆う場合、それは最善の方法ではありません。他のビューをウィンドウのサブビュー (または他のビューの親ビュー) として追加し、[theView removeFromSuperview]; を使用してウィンドウ/親ビューからそのビューを削除する必要があります。

階層構造を持っている場合、つまり、最初のビューから 2 番目のビューへ、そのビューから 3 番目のビューまで、複数の層を深くすることができる場合は、UINavigationController の使用を検討する必要があります。新しいビューを表示するたびに、それを UINavigationController のスタックにプッシュして、ポップオフするレベルに戻ります (戻るボタンでデフォルトのナビゲーションバーを使用する場合、これは自動的に処理されます)。この状況では、目に見えないビューを削除して必要に応じて再作成する必要はありません。それはすべて UINavigationController によって処理されます。

于 2010-07-14T11:16:49.900 に答える
0

ビューを常に「削除」する必要はないことも覚えておいてください。代わりに非表示にすることができます。

[self.view setHidden:YES]

これにより、それらが描画されなくなります。removeFromSuperview は、ビューが保持されていない限りメモリからビューを実際に解放するため、便利です。つまり、元に戻すことはできません。

于 2010-07-14T11:41:26.490 に答える