我在我的应用程序NavigationController上面添加一个登录视图,当登录成功时,登录视图隐藏。当按下注销按钮时,视图将显示。注销,我想释放navicontroller的内存, navicontroller有很多视图和数据模型,当注销它时,想要自由所有只是离开导航。
有什么方法可以做到吗? THX。
答案 0 :(得分:1)
您可以使用UIViewController
的{{3}})viewDidDisappear
和viewWillAppear
回调来删除或重新创建部分视图和数据。但iOS中的内存管理肯定会为您做家务,并在低内存条件下调用控制器viewDidUnload
方法(内存警告)。因此,我建议您在viewDidUnload
方法中实施清理工作,并关注viewDidLoad
中的视图和数据设置。请参阅viewDidUnload
的评论以获取更多信息:
当发生内存不足并且不需要当前视图控制器的视图时,系统可能会选择从内存中删除这些视图。在视图控制器的视图发布后调用此方法,并且您有机会执行任何最终清理。如果视图控制器存储对视图或其子视图的引用,则应使用此方法释放这些引用(如果最初保留了对象)并将这些引用设置为nil。您还可以使用此方法释放您创建的任何对象以支持视图,但现在视图消失后不再需要这些对象。您不应使用此方法来释放用户数据或任何其他无法轻松重新创建的信息。