状況:私は完全にUInavigationcontrollerに基づいたアプリケーションを持っています。アプリケーションのある時点で、コントローラーをプッシュします。コントローラーにはいくつかのサブビューが含まれています。次に、同じクラスのコントローラーAの他の新しいインスタンスであるコントローラーBをプッシュします。また、コントローラーBにはいくつかのサブビューがあります。
コントローラBをポップすると、コントローラAに関連付けられたビューが表示されます。問題は、画面上に(Aのサブビュー上に)コントローラーBに関連付けられたビューのすべてのものもあることです。
私の推測では、どういうわけか、問題は両方のコントローラーが同じクラスのインスタンスであるという事実に関連していると思います。(異なるクラスのコントローラーを使用すると、完全に機能します)
どうも。
編集:すべてのものはプログラムで、xib(ストーリーボードなし)で行われます
ビューAのプッシュ:
ScreenViewController *secondView = [[ScreenViewController alloc] initWithNibName:@"ScreenViewController" bundle:nil];
// set some properties
[[self navigationController] pushViewController:secondView animated:YES];
ビューBのプッシュ:
ScreenViewController *newScreenView = [[ScreenViewController alloc] initWithNibName:@"ScreenViewController" bundle:nil];
// set some properties
[[self navigationController] pushViewController:newScreenView animated:YES];
に関連付けられたビューには、表示する必要のあるすべてのサブビューを追加するためScreenViewController
の(プロパティとして)が含まれています。UIView
に配置する必要があるため、ビューを直接使用するのではなく、プロパティを使用しますUIScrollView
。