2012-01-04 6 views
0

困っています。iPhoneアプリケーションを表示するサブビューを削除しますか?

私はこのような他のビューを追加しています。

haberdetay *detayview = [[haberdetay alloc] initWithNibName:@"haberdetay" bundle:nil]; 

CATransition *transition = [CATransition animation]; 
transition.duration = 0.25; 
transition.type = kCATransitionPush; 
transition.subtype = kCATransitionFromRight; 
[self.view.layer addAnimation:transition forKey:nil]; 

[self.view addSubview:detayview.view]; 

このビューは別のビューと別のビューを開きます。次に、ユーザーがメインアイコンにタッチします。このすべてのビューはメモリを使用しています。どうすれば削除できますか?私は、このアクセスhaberdetayのサブビュー

NSArray * subviews = [self.view subviews]; 
for(UIView * aSubview in subviews) 
{ 
    // this removes and releases the subviews you allocated 
    [aSubview removeFromSuperview]; 
} 

をしようとしているが、私はそれらを削除するか、またはアクセスするために、すべてのサブビューにアクセスする必要があります。

あなたが知っている通り、私は混乱しています:)あなたが私を理解すれば、どうすればいいですか? :)

答えて

1

別のViewControllerに1つのViewControllerのビューを追加するのではなく、pushViewControllerまたはpresentModalViewControllerを使用する必要があります。戻るときにpopViewControllerまたはdismissModalViewControllerを使用すると、メモリ管理にも役立ちます。

+0

mainwindowにはビューベースのビューコントローラがあります。ナビゲーションビューコントローラに変更します。そして、このメソッドは完全に正しく動作しますか?最後に、他のxibファイルにナビゲーションコントローラを追加する必要がありますか? –

1

私はあなたがしたいと思う[self.navigationController pushViewController:haberdetay animated:YES];以前のビューをキャッシュするので、解放する必要はありません。また、アニメーションやメインビューの追加や削除も処理します。それに、そのようなビュー、特にメインのself.viewを洗い流すことは、本当に悪い考えです。

+0

私はそれをありがとう、ありがとう。私はこのようにしています。私はhaberdetayを割り当てる必要がありますか? –

+0

私は割り当てられ、それは、ありがとう:) –

+0

問題はありません。便利なメソッドがない場合は、常にallocとinitを実行します。 – CodaFi

関連する問題