假设我将UIViewController传递给UINavigationController,如下所示:
SettingsViewController *settingsRootView = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil]; SettingsNavigationController *settingsView = [[SettingsNavigationController alloc] initWithRootViewController:settingsRootView]; [settingsRootView release]; [self presentModalViewController:settingsView animated:YES]; [settingsView release];
我在原来的UIViewController上释放了保留, settingsRootView ,但是 settingsView 在上面有一个保留物。当我解雇 设置视图 ,它应该释放自己和它所有的孩子,但出于某种原因,它不是。有没有办法告诉我的主应用程序视图 设置视图 迫使我的主视图释放 设置视图 所有的子视图呢?
settingsRootView
settingsView
设置视图
要强制settingsView释放它正在管理的任何控制器,请调用settingsView.viewControllers=nil。
但当settingsView被释放时,这应该会自动发生。在setingsView的dealloc方法中放置一个断点,以确保它被释放。确保dealloc正在调用[super dealloc]。