关闭活动工作表的正确方法?
Posted
技术标签:
【中文标题】关闭活动工作表的正确方法?【英文标题】:Proper way for dismiss active sheet? 【发布时间】:2021-04-05 14:01:32 【问题描述】:在我的 UI 中,我尝试使用不同的按钮在应该显示的活动工作表之间切换。
.sheet(item: $activeSheet) item in
switch item
case .sheet1:
SheetInfoViewOne()
case .sheet2:
SheetInfoViewTwo()
显示正常。但是,我不知道关闭它的正确方法。用户可以滑开活动工作表。它消失了。但是,我想知道内存是否会被释放?是否应该有额外的代码来以正确的方式关闭这些活动工作表?
【问题讨论】:
谷歌上的第一个结果:hackingwithswift.com/quick-start/swiftui/… 这是用按钮关闭。我的问题是如果用户滑动视图,如何正确处理内存。 你为什么担心内存?它会自己处理,您是否面临一些问题?你为什么会担心它?我没有投反对票,但我认为问题是错误的或需要编辑 @user6539552 您的问题字面意思是“关闭活动工作表的正确方法”,现在您声称这不是您的问题。如果这是你的问题,也许你应该问“内存释放在 SwiftUI 中是如何工作的” 【参考方案1】:如果视图不再使用,ios 会自动释放它的内存。 所以你不必使用任何“特殊代码”来释放内存: 忽略你的观点。
请记住,将 .opacity 设置为“0”不会释放内存,因为视图仍然存在,只是您看不到它。
【讨论】:
我也想添加这个,只要你的视图在你的屏幕上没有激活或者它不能活着,这就是 SwiftUI 的工作方式,当视图被杀死时它的所有私有数据和变量也被杀死,因为它们是私有的,这就是为什么苹果说定义你的状态私有!以上是关于关闭活动工作表的正确方法?的主要内容,如果未能解决你的问题,请参考以下文章
当工作表的代码隐藏在“代理”接口+类中实现时正确处理工作表事件