1

伝承機能を使用した場合

   [self.navigationController pushViewController:viewcontroller animated:YES];

また

   [self presentModalViewController:viewcontroller animated:YES];,

全て大丈夫。しかし、私が使用したとき

   [self.view addSubview:viewcontroller.view];

次のビューでは何もできません。すべてのビューのメモリ ポインターがなくなってしまいました。そして、それはいつもクラッシュします。

4

1 に答える 1

2

あなたのviewControllerオブジェクトはローカルで宣言されていると思います。クラスレベル変数にする(.mファイルで宣言)。アプリがクラッシュする理由は、オブジェクトをローカルで宣言し、その関数が終了した後に解放されるためです。したがって、addSubView のオブジェクトはありません。プッシュまたは提示すると、オブジェクトは一度保持されるため解放されず、アプリケーションは機能します。したがって、addSubView を使用する場合は、クラス レベルの変数にして、解放されないようにします。

于 2013-05-16T05:56:18.220 に答える