考虑使用此代码将新控制器推送到导航堆栈:
AlphaColorController * a = [[AlphaColorController alloc] initWithColor:color name:name alpha:0.25];
[[self navigationController] pushViewController:a animated:YES];
[a release];
没有为 保留指针a
。如果用户导航到这个新控制器,然后导航“后退”,然后再次“前进”,导航控制器是否足够聪明,可以知道该控制器已经存在,或者如果不存在,则再次分配它?如果控制器在多次推送之前已经实例化,那么首先测试(使用指针)有多大必要?
更新:换一种说法,每次用户导航到导航控制器的特定区域时,这段代码是否会有效地重新分配控制器?导航控制器每次都会重新创建并推送新创建的控制器?