3

instagramソーシャルネットワーキングアプリのフローや種類など、多くのサブビューを持つアプリケーションを開発していpicyouます。フローは画像->詳細画像->任意のコメント->ユーザー名->フォロー->ユーザー名->画像ユーザー名->画像->です。詳細画像->任意のコメント->ユーザー名->フォロー中->ユーザー名->画像ユーザー名->くそーこれは無限に止まらない.....

メモリの警告が表示されたり、メモリの問題によってクラッシュしたりすることはありません...

私はナビゲーションコントローラーを使用していますが、ナビゲーションのいくつかの時間を変更した後でも、いくつかのビューコントローラーを変更すると、このようなエラーが発生します*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing the same view controller instance more than once is not supported (<ViewController: 0x6d97110>)'

私はあなたがまたすべてのデータを取り戻すことを押し戻すときにこれと同じことをしたい. このようにする方法はありますか?

4

1 に答える 1

1

UINavigationController は、説明しているこの動作を自動的にサポートします。メモリ効率が高く、潜在的に無限です。アプリのある部分から次の部分に移動するたびに、次のようなコードを使用するだけです。

ViewController *vc = [[ViewController alloc] init];
//customize ViewController
[self.navigationController pushViewController:vc animated:YES];

したがって、写真から写真の詳細ビューに移動したい場合は、ボタンが押されたときに写真の詳細ビュー コントローラーを押すだけです。すでに写真の詳細ビュー コントローラーを使用している場合でも、そのクラスから別のビュー コントローラーをプッシュできます。必ず別のインスタンスを作成してください。あなたのエラーから判断すると、それがあなたの問題だと思います。

また、これらの種類のビュー コントローラー用のカスタム イニシャライザーを作成するのが最善であることもわかりました。写真の詳細ビューには、次のようなものを使用します。

-(id)initWithPhoto:(Photo*)photo;
于 2012-10-03T12:19:11.317 に答える