我正在我的应用程序中使用本地化。每当用户在应用程序中更改语言时,我都会设置所选语言并创建新的故事板,并将其设为根视图控制器。一切正常。但是我面临的问题是,每当我创建新的故事板并将其设置为rootviewcontroller时,内存使用率就会不断增加,例如在开始应用程序使用117 MB时,我更改了语言并将其设置为160-170 MB,然后又将其更改为220-230 MB。因此,如何销毁以前的情节提要,并创建新的情节提要。
func makeRootViewController(controller_Identifier: String, storyboard: String?) {
let navController = UINavigationController()
navController.setNavigationBarHidden(true, animated: false)
let storyboard = UIStoryboard(name: storyboard ?? "Main", bundle: Bundle.main)
let vc = storyboard.instantiateViewController(withIdentifier: controller_Identifier)
navController.viewControllers = [vc]
UIApplication.shared.keyWindow?.rootViewController?.removeFromParent()
UIApplication.shared.keyWindow?.rootViewController = nil
UIApplication.shared.keyWindow?.rootViewController = navController
}
我建议您应该通过代码而不是在故事板中使用本地化。有很多方法可以做到这一点。最简单
我指的是: