情况:我有一个完全基于 UInavigationcontroller 的应用程序。在应用程序的某个时刻,我推送控制器 A 至极,其中包含几个子视图。然后我推送一个控制器 B,它是同一类控制器 A 的另一个新实例。控制器 B 也有一些子视图。
当我弹出控制器 B 时,将显示与控制器 A 关联的视图。问题是屏幕上还有与控制器 B 关联的视图的所有内容(在 A 的子视图上)。
我的猜测是,问题与两个控制器都是同一类的实例这一事实有关。(使用不同类的控制器它可以完美地工作)
谢谢。
编辑:所有的东西都是以编程方式和 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
.