0

私はiOS開発の初心者で、あなたに質問したい問題があります。

私の目的は、ベース ビューにビュー (全画面表示ではない) を表示し、サブビューの外側の背面に親を表示することです。したがって、現在のviewControllerにサブビュー(UIViewControllerのサブクラス)を追加してから、サブビューを開きます:

AViewController *a = [[AViewController alloc] initWithNibName:nil bundle:nil];
[self.view addSubView:a.view];
[a release];

ここで動作し、このサブビューを期待どおりに表示します。このサブビューには、このサブビューを閉じるための閉じるボタンがあり、サブビューで次のようにします:

- (IBAction)BackTouchUp:(id)sender 
{
    [self.view removeFromSuperview];
}

ボタンをクリックして閉じると、エラー EXC_BAD_ACCESS が発生しました。親の [a release] コマンドを削除すると機能しますが、メモリ リークが発生します。

このエラーの原因と、このケースを解決する方法を教えてください。

4

2 に答える 2

0

ビュータグを設定できます

[a.view setTag:3];
uiView *f=[self.view viewWithTag:3];
[f removeFromSuperview];

私はこれがあなたの問題を解決すると思います

于 2012-04-10T11:17:52.270 に答える
0

AViewControllerインターフェイスでオブジェクト (AViewController *a) を定義し、実装で、以下のように値を初期化します。

a = [[AViewController alloc] initWithNibName:nil bundle:nil];

[self.view addSubView:a.view];

そして、削除したいときはいつでも、単純に配置[a removeFromSuperview]して解放します

[a release];
于 2012-04-10T11:40:33.723 に答える