0

私はxcodeにかなり慣れておらず、5つのビュー(xibファイル)を持つ単一のビューアプリケーションを作成しています。2つの理由から、ナビゲーションコントローラーまたはストーリーボードを使用していません。Storyboardを使用する場合、他のビューをUIViewファイルにする必要があります。これらは持っていません

-(void)viewDidLoad 

これにより、アプリケーションにあるいくつかのタイマーをロードできなくなります。

次のコードを使用して、最初のページから2番目のページに移動し、5番目のページ/ビューに移動することができます。

-(IBAction)pagethree {
    countdown=[[Countdown alloc] initWithNibName:@"Countdown" bundle:nil];
    [self.view addSubview:countdown.view];  
}

しかし、5番目のビューから最初のページに戻りたいときに問題が発生します。私の最初のビューはViewControllerと呼ばれます。上記のコードを試してみると、アプリがエラーでいっぱいです。

私も使ってみました

-(IBAction)back {
    [self.view removeFromSuperview]; 
}

しかし、それは私を1つの見方に戻すだけでした。

私の5番目のViewControllerはStatisticsと呼ばれ、最初のViewControllerはViewControllerと呼ばれます。最後のビューから最初のビューに戻るために何をコーディングできますか?

ありがとう

4

1 に答える 1

1

まず、質問に答えるには、addSubviewごとにremoveFromSuperview(または同様の方法)を実行する必要があります。addSubviewを実行するたびに、スタックのように、新しい画面を最後の画面の「上」に配置します。5番目のビューに到達すると、その「背後」に他の4つのビューがあります。(実際には、これはaddSubviewが行うこととは異なりますが、特定の状況での効果について説明しているだけです)。

しかし、私はあなたがそれを間違っていると思います...あなたはストーリーボードとナビゲーションコントローラーについてもっと読むべきです。どちらもUIViewControllerで使用され、手作業で実行しようとしていることをすぐにサポートします。たとえば、ナビゲーションコントローラを使用して、新しいViewControllerをプッシュするには次の操作を実行できます。

[navigationController pushViewController:viewController animated:YES];

あなたはそれを何度でも行うことができます。次に、一度戻るには、次のようにします。

[navigationController popViewControllerAnimated:YES];

そして、最初のものに直接戻るには:

[navigationController popToRootViewControllerAnimated:YES];

お役に立てれば。

于 2013-03-06T20:51:34.180 に答える