关闭活动工作表的正确方法?

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 的工作方式,当视图被杀死时它的所有私有数据和变量也被杀死,因为它们是私有的,这就是为什么苹果说定义你的状态私有!

以上是关于关闭活动工作表的正确方法?的主要内容,如果未能解决你的问题,请参考以下文章

仅在 QTabWidget 的活动选项卡上关闭按钮

当工作表的代码隐藏在“代理”接口+类中实现时正确处理工作表事件

如何正确地从 Excel 工作表的 VBA 连接到另一个 Excel 工作表?

处理多个表的工作流

仅更改活动工作表上的值

openpyxl - 活动工作表被分组到选定的工作表