2011-08-13 12 views
2

私はサブビューを追加しようとして、以前のビューも削除しようとしています。ここビューを正しく削除し、サブビューを追加します。

は私のコードは次のようになります。

HowToPlay *LetsPlay = [[HowToPlay alloc] initWithNibName:@"HowToPlay" bundle:nil]; 

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.75]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight 
         forView:[self view] 
         cache:YES]; 
[UIView commitAnimations]; 



MainViewController *ma = [[MainViewController alloc]init]; 
[ma.view removeFromSuperview]; 

[self.view addSubview:LetsPlay.view]; 

Mainviewcontrollerは、その現在のもの図です。私はそのビューを却下して、新しいビューLetsPlayを追加します。

このコードは実行され、新しいビューが読み込まれますが、LetsPlayから別のビューを読み込むと、mainviewcontrollerがまだその背後で実行されていることがわかります。私はそれを永久に却下したい。

また、このことについて正しく行っているかどうかはわかりません。そうでない場合は、正しく実行する方法の例を教えてください。

感謝:)

答えて

5

あなたはそれを右の道を進んでいない:あなたは新しい MainViewControllerのインスタンス(ともそれに関連するビューの)を作成しています。ビューに追加されていなくても、この新しく作成されたビュー(instance2と呼ぶ)をスーパービューから削除しようとしています(instance1 has)。これはあなたがまだmainviewcontrollerを見ている理由です。

代わりに、現在実行中/アクティブなMainViewControllerを保持する必要があります。私。そのビューコントローラの参照を保持する必要があります。次に、そのビューでremoveFromSuperviewを呼び出すことができます。

これが役に立ちます。

+0

私はアプリケーションデリゲートにあるmainviewcontrollerの元の負荷にアクセスできました。私は今スーパービューから削除することができます。今、私は新しいビューを読み込むことができますか? – Jacob