我从客户端获得了一个旧项目,但它没有使用导航。它每次都会改变rootViewController。
它有BaseViewController
个NSString
个对象,Dictionary
个对象,extern NSString* const
个对象。所有viewControllers都是BaseViewController
。
在Appdelegate中它有一些NSString,NSArray,NSDictionary等。它存储数组中最后一个viewController的信息。
我在viewController的dealloc方法中添加了分解。这不是叫。这是更改rootViewController的代码。
self.viewController = [[NSClassFromString(nextControllerName) alloc] initWithNibName:[NSString stringWithFormat:@"%@_iPhone",nextControllerName] bundle:nil];
[(BaseViewController *) self.viewController setEventKey:eventKey1];
[(BaseViewController *) self.viewController setControllerName:nextControllerName];
[(BaseViewController *) self.viewController setDataKey:dataKey];
[(BaseViewController *) self.viewController setTitleString:title];
[(BaseViewController *) self.viewController setTab:tab];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
[navController setNavigationBarHidden:YES animated:NO];
self.window.rootViewController = navController;
我认为viewcontroller和appdelegate中仍然存在一些链接,因此不会释放viewController。 找任何泄漏请帮忙。 感谢。