0

ViewControllers (ViewController A) の 1 つに、次のコードがあります。

AlertViewController *aViewController = [[AlertViewController alloc] initWithNibName:@"AlertViewController" bundle:nil];
[self.view addSubview:[aViewController view]];
[self.view bringSubviewToFront:[aViewController view]];

AlertViewController にはボタンがあり、ユーザーがそれをクリックすると、次のようになります。

[self.view removeFromSuperview];

ボタンをクリックするたびに、結果は EXC_BAD_ACCESS になります。私は問題を理解することができません。私のプロジェクトはARCを使用しており、その情報が役立つ場合、ViewController Aはナビゲーションコントローラースタックの一部です。

4

1 に答える 1

1

ここでの問題は、UIView がその UIViewController を所有していないことです。コードの最初のブロックでは、UIView をサブビューに追加して保持しましたが、UIViewController は削除しました。UIViewController からの UIView は特別です。これを起こさせることはできません。

ビューが存続する限り、UIView を作成した UIViewController が存続することを確認してください。

于 2012-07-30T22:31:47.593 に答える