在我的其中一个应用程序中,我需要重新分配rootview控制器,所以为此我做了如下所示,
self.wndow.rootViewController = nil;
self.window.rootVIewController = navigationController;
但是现在问题是以前使用的类对象没有从内存中释放,保留计数的生命对象继续增加,而我重新分配新的窗口rootVIewController,并且没有调用该类的dealloc方法,我用xcode检查了保留计数个人资料工具..,任何人都可以帮助我吗?
答案 0 :(得分:0)
如果使用ARC,则在启用nszobie对象时不会调用dealloc方法。所以禁用它们。
转到product>edit schems> unchek the enable zombie
要检查保留计数,请使用此代码并验证
CFIndex rc = CFGetRetainCount((__bridge CFTypeRef)self.wndow.rootViewController);
答案 1 :(得分:0)
如何初始化窗口然后分配根视图控制器。我在之前的应用程序中做了这个,没有任何问题。
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
答案 2 :(得分:0)
如果我可以避免它,我不会重新分配rootViewController,我会创建自己的简单UIViewController子类来充当容器ViewController,然后让它执行子viewControllers之间的切换有方法可以帮助你做到这一点。或者,您可以使用UITabBarController并隐藏选项卡栏。