你能检测到 UIViewController 何时被解除或弹出吗?

2024-04-23

每当我的视图控制器之一被解除/弹出/卸载时,我都需要在共享资源中执行一些清理?这可能是当用户点击该单个屏幕上的后退按钮时,或者调用 popToRootViewController 时(在这种情况下,理想情况下我能够清除弹出的每个控制器。)

显而易见的选择是在 viewDidUnload 中执行此操作,但当然,这不是卸载的工作原理。有没有办法捕获 ViewController 从堆栈中删除的所有情况?

编辑:忘记提及我正在使用 Xamarin 执行此操作,因此可能会也可能不会影响答案。


override func viewDidDisappear(animated: Bool) {
    super.viewDidDisappear(animated)
    if (isBeingDismissed() || isMovingFromParentViewController()) {
        // clean up code here
    }
}

编辑 swift 4/5

override func viewDidDisappear(_ animated: Bool) {
    super.viewDidDisappear(animated)
    if (isBeingDismissed || isMovingFromParent) {
        // clean up code here
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

你能检测到 UIViewController 何时被解除或弹出吗? 的相关文章

随机推荐

  • 从 XML 转换为 SQL Server 日期时间时出现毫秒错误

    我遇到了将日期时间从 XML ISO8601 yyyy mm ddThh mi ss mmm 转换为 SQL Server 2005 日期时间相关的问题 问题是转换毫秒时错误 我已经使用 nvarchar 中的 Convert dateti
  • vuejs 每周日历不显示事件

    每周日历无法正确显示事件 甚至是来自的片段代码https vuetifyjs com en components calendars https vuetifyjs com en components calendars还给我一个空日历 我
  • Python 使用 @unittest.expectedFailure 为单元测试引发 _ExpectedFailure

    我有两个系统运行同一组 Django 单元测试 一些测试使用 unittest expectedFailure装饰师 在一个系统上 这些运行良好并在测试运行结束时报告OK expected failures 10 unexpected su
  • GMap - 无法检测到点击多边形

    IsMouseOverMarker属性检测到点击标记就好了 但是当尝试使用时IsMouseOverPolygon的财产GMap控制检测用户是否单击多边形线 它似乎不起作用 Note PolygonEnabled的财产GMap控制设置为 Tr
  • 适用于 Android 的最佳 json rpc 2.0 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有用 php 编写的 json rpc 2 0 服务器 目前我正在寻找一个允许自动生成 json r
  • 如何在没有科学计数法的情况下显示“toPrecision”的结果?

    基于http www mredkj com javascript nfbasic2 html http www mredkj com javascript nfbasic2 html 以下代码将导致5 6e 2 num 555 55 res
  • 不同 zlib 压缩级别的压缩比

    我正在考虑使用什么级别的 zlib 压缩 并且我很好奇可以在 zlib 命令中指定的不同压缩级别的不同压缩率 这zlib手册 http www zlib net manual html Constants具有以下用于指定压缩级别的常量 de
  • Mongoose 默认值是否应用于现有文档?

    如果我向 Mongoose 架构添加属性并为其指定默认值 现有文档在加载时是否会收到这些默认值 是的 但如果查询是lean 对于返回完整 Mongoose 文档对象的查询 Thing find 每当属性丢失时都会返回默认值 无论架构何时更改
  • 按日期字符串索引时间序列

    给定一个时间序列 s 使用日期时间索引 我希望能够通过日期字符串对时间序列进行索引 我是否误解了这应该如何运作 import pandas as pd url http ichart finance yahoo com table csvs
  • 错误:“us”中的 Dialogflow 服务器收到了对位于“europe-west2-dialogflow.googleapis.com”中的资源的请求。

    我想使用对话流检测意图 但由于某些原因 我的对话流代理所在区域是 europe west2 因此 为了指定位置 我使用 Dialogflow API 的 v2beta1 版本 如文档中所述 但它不起作用 我有以下错误Dialogflow s
  • Scala:研讨会建议

    我被邀请为 PHP 观众举办一个 Scala 研讨会 这些人中的很多人根本没有接触过函数式编程语言 所以我想知道如何以某种方式介绍他们 以便他们充分利用它 我听说很多人很难理解高阶函数等 你有什么经历 我不想用太先进的东西吓跑他们 也不想让
  • 删除 ImageView 会导致某些手机崩溃

    因此 出于某种原因 在我的 Samsung Galaxy S2 Android 版本 4 0 4 上尝试从relativelayout 中删除 ImageView 时 我得到了 NPE 这是运行的代码行 mainView removeVie
  • 多周期持久化、向量化、时间序列python

    我有一个包含每日值的 DataFrame 并且我正在使用各种方法来预测未来两周的值 作为一个基础的 天真的预测 我只想简单地说今天的价值是未来两周的最佳预测 例如 的值01 Jan 2012 is 100 那么我想要预测02 Jan 201
  • 在 RecyclerView android 中拖放期间面临位置值问题

    如何在 RecyclerView 适配器中拖放时获取新的位置值 拖放工作正常 但是当我设置 setOnClickListener 打开我的详细活动时 它给了我旧的位置值 例如 如果我拖动第二个项目 INDEX 1 并放在第一个项目的位置 I
  • 隐藏图中某些图形对象的 MATLAB 图例条目

    MATLAB 图例列出了绘图中的所有内容 包括您在绘图上放置的指南 绕过这个问题的软糖就是要做的 Plot Add legend Add guidelines 然而 MATLAB 将最新的行放在前面 这意味着指南将位于显示的数据之上 丑陋且
  • varchar 变量的字符串比较失败

    我无法理解为什么会得到以下结果 declare myVar1 varchar Friday declare myVar2 varchar 10 Friday select case when myVar1 Friday then yes e
  • UiAutomator getLastTraversedText()

    我试图使用 Android UiAutomator 测试 Android Webview 据我了解文档 http developer android com tools help uiautomator UiDevice html getL
  • Python 中匹配“中文+数字”模式的正则表达式

    在Python 3 3中 我想匹配下面的模式 但它总是失败 摄氏零下253 我使用了下面的正则表达式 x00 x47 x58 x7F 它不是排除除数字之外的所有 ascii 吗 根据您使用的编程语言 您可以使用以下内容 p Han p N
  • 如何在Linux中使用相对路径打开文件?

    我有一个程序 它使用相对路径 例如 打开文件 现在的问题是 当我从另一个目录执行程序时 相对路径不是相对于程序而是相对于工作目录 因此 如果我使用 path to program myprog 启动程序 它将无法找到该文件 有没有办法独立于
  • 你能检测到 UIViewController 何时被解除或弹出吗?

    每当我的视图控制器之一被解除 弹出 卸载时 我都需要在共享资源中执行一些清理 这可能是当用户点击该单个屏幕上的后退按钮时 或者调用 popToRootViewController 时 在这种情况下 理想情况下我能够清除弹出的每个控制器 显而