我的应用程序中有大约 9 个 ViewControllers
。我正在使用 presentModalViewController
打开 ViewController。每次用户进入后台并进入前台时,我都想显示第一个 ViewController。如果用户在第 8 个 ViewController 中进入后台并再次打开应用程序,我需要显示第一个 View Controller。
我在 applicationWillEnterForeground
- (void)applicationWillEnterForeground:(UIApplication *)application
{
self.HomeScreenViewController = [[HomeScreenViewController alloc] initWithNibName:@"HomeScreenViewController" bundle:nil];
self.window.rootViewController = _homeScreenViewController;
[self.window makeKeyAndVisible];
}
它显示内存泄漏。显然它会显示内存泄漏,因为我再次初始化 HomeCtrl,但我不知道如何修复它。谁能帮我 ??
我没有使用 UINavigationController
,因为 ViewController 是从右侧或左侧推送的。
最佳答案
改变:
self.HomeScreenViewController = [[HomeScreenViewController alloc] ....];
到
_HomeScreenViewController = [[HomeScreenViewController alloc] ....];
或者您可以执行以下代码:
HomeScreenViewController *tempHSVC = [[HomeScreenViewController alloc] ....];
self.HomeScreenViewController = tempHSVC;
[tempHSVC release];
self.window.rootViewController = self.HomeScreenViewController //or use just _homeScreenViewController;
[self.window makeKeyAndVisible];
并阅读了一些关于 objc 中内存管理的文章。
关于iphone - applicationWillEnterForeground 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11881731/