我的应用程序一开始是基于视图的,但后来我不得不更改为基于导航。我这样做的方法是在我的 UINavigationController 中创建一个成员AppDelegate
并调用pushViewController
该didFinishLaunchingWithOptions
方法:
@property (nonatomic, retain) IBOutlet UINavigationController *navigator;
// didFinishLaunchingWithOptions implementation
MainController *mainView = [[MainController alloc] initWithNibName:@"MainController" bundle:nil];
navigator = [[UINavigationController alloc]init];
[navigator pushViewController:newSongView animated:YES];
[mainView release];
在我的MainController view
我有一个按钮调用此方法并将用户发送到下一个视图:
- (IBAction)newViewLoader:(id)sender {
SecondViewController *secVC = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
[self.navigationController pushViewController:secVC animated:YES];
}
这工作正常,但按下此按钮的那一刻,模拟器开始使用 5MB 以上的内存。当我按下back
导航栏上的按钮而不是按下调用该newViewLoader
方法的按钮时,模拟器会多占用 5MB。以此类推,每次加载第二个视图时。所以加载这个视图是相当昂贵的。
按下后退按钮时是否有某种方法可以卸载视图,这样每次打开视图时内存就不会一直增加?这是每次加载视图时发生的屏幕截图。