两个视图控制器之间viewDidAppear和viewDidDisappear的回调顺序

2024-01-14

据我所知,至少有两种方法可以在另一个 UIViewController 上呈现 UIViewController,第一种是在 UIViewController 上使用 presentModalViewController:animated: ,另一种是在 UINavigationController 上使用 pushViewController:animated: ,似乎当 2 个视图控制器更改其外观时,调用出现/消失回调的顺序不同。下面是一个例子,A是一个UINavigationController,B是一个普通的视图控制器,实际的回调顺序是:
(1)A使用presentModalViewController:animated:来显示B:

[B viewWillAppear];  
[A viewWillDisappear];  
[B viewDidAppear];  
[A viewDidDisappear];

(2) A使用pushViewController:animated:来显示B:

[A viewWillDisappear];  
[B viewWillAppear];  
[A viewDidDisappear];  
[B viewDidAppear];

所以我的问题是,这些不同的回调顺序是否稳定,或者没有我们可以依赖的确定的顺序?如果稳定的话,有没有文件提到这种行为?


UIKit should在主线程上工作,所以我猜序列是稳定的,对于当前的 SDK 版本。但是,只要该行为没有记录在案(据我所知),我就会认为它可能会发生变化,恕不另行通知。

我只是好奇;为什么需要这些方法的确定性序列?也许您可以找到解决方法(这可能是更好的方法)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两个视图控制器之间viewDidAppear和viewDidDisappear的回调顺序 的相关文章

  • 重新启动应用程序时出现异常 SIGKILL

    我在 iPhone 模拟器中构建并运行一个项目 我通过按主页按钮将其发送到后台 然后我双击主页按钮在后台找到我的应用程序并点击它 它变得活跃并且应用程序继续运行 在这里 无论我重复多少次 我都没有问题 然后我通过点击应用程序图标上的红色小减
  • iPhone JPG 图像有非标准魔术字节 ff d8 ff e1?

    我的网络应用程序在接受上传的图像之前会根据文件扩展名检查前四个字节 一位同事向我展示了他 iPhone 上的图像 但这些图像被拒绝了 它们具有不同的第四个字节 e1 225 而不是预期的 e0 224 这对于 iPhone 来说是常见的吗
  • DatePicker 停止 CoreData 按预期工作

    我有一个应用程序 它保存 UIDatePicker 中的文本和日期 然后在您回到 UIDatePicker 中的该日期时显示该注释 效果很好 只有我发现将 UIDatePicker 日期设置为今天会停止 CoreData 工作 只有当我运行
  • 使用 json 向 RESTful WCF 发送 Post 请求

    我已经尝试了每种组合来发送请求 以从 jQuery 向 RESTful WCF 发送 POST 请求 有人可以模仿并使其发挥作用吗 代码在这里 http pastebin com Ua97919C http pastebin com Ua9
  • 将 Array Obj-c 的内容转储到控制台

    我寻找了如何转储和数组到我主要找到的控制台 for id name in arrayStuff NSLog Array contents d name 我尝试了不同的格式化程序 d g 等 它们确实打印了不同的内容 但不是我 99 确信被输
  • 在带有 Storyboard 的 XCode 4 中以模态方式推送视图时,出现“对开始/结束外观转换的不平衡调用”警告

    在网上进行了一些研究但没有成功后 我来这里向您询问有关我的警告的问题 实际上 我有一个带有导航控制器的视图 V1 我想在 V1 完成加载时推送模态视图 V2 所以我用performSegueWithIdentifier方法 我正在使用故事板
  • 如何恢复消耗品应用内购买?

    我正在开发一款 iOS 游戏 用户可以通过应用内消耗品购买一定数量的内部货币 比如 1000 金币 如果用户想将余额从一台设备转移到另一台设备 如何恢复消耗品购买 在苹果的文档中 它说我们必须使用我们自己的服务器 但是如何获取用户的Appl
  • UIScrollView - 启用分页后,我可以“更改”页面宽度吗?

    将滚动视图 将 pagingEnabled 设置为 YES 将页面宽度设置为滚动视图边界以外的其他值的最简单方法是什么 让我举个例子 假设我有一个包含 10 个项目的滚动视图 每个项目的宽度为 150 像素 而我的滚动视图的宽度为 300
  • 应用内购买产品禁用“提交审核”

    基于此处提到的所有步骤http troybrant net blog 2010 01 in app purchases a full walkthrough http troybrant net blog 2010 01 in app pu
  • 来自 iPhone/iPad 的 json Web 服务

    有人可以帮助我解决如何从 iphone 或 ipad 使用 json Web 服务的问题吗 这里我的要求是使用 API 密钥实现 json webservice 如果可能的话发布一些教程或示例链接 谢谢 规范的 JSON 处理库是here
  • 为什么 iPhone 上的纹理图像需要具有二维幂?

    我正在尝试解决 iPhone 上的闪烁问题 open gl es game 我有一些没有 2 维的图像 我将用具有适当尺寸的图像替换它们 但为什么尺寸需要是 2 的幂 大多数系统 甚至许多现代显卡 需要 2 的幂纹理的原因是 mipmap
  • Cocos2d - 将 GLImageProcessing 效果应用于 CCSprite

    苹果的oplenglGL图像处理 http developer apple com library ios samplecode GLImageProcessing Introduction Intro html加载图像并应用图像调整 亮度
  • 在运行时获取 iPhone 应用程序的产品名称?

    如何才能实现这一目标 我想获取名称 以便可以在应用程序中显示它 当然 每次更改名称时不必在代码中更改它 Try this NSBundle bundle NSBundle mainBundle NSDictionary info bundl
  • 在 swrevealcontroller 之前实现登录屏幕

    我刚刚开始学习 IOS 开发 我已经按照给定的在线教程成功实现了 SWRevealViewController 一切都按预期工作 然后 我决定添加一个登录屏幕 这将是应用程序运行时用户看到的第一个页面 我采取的步骤如下 将 UIViewCo
  • 检索 iPhone 中的 Outlook 联系人

    我想通过应用程序导入所有 Outlook 联系人 有什么办法可以做到这一点吗 请告诉我 您可以通过实施 Microsoft Exchange 服务器协议来实现此目的 微软MSDN http msdn microsoft com en us
  • iPhone 崩溃日志?

    我已经配置了一部 iPhone 并让用户安装了该应用程序 它失败 是否有崩溃日志可以让我看到 iPhone 上失败的原因 Ian 如果您可以使用 xcode 将 iPhone 连接到计算机 则在管理器窗口中它会显示每个应用程序崩溃的崩溃日志
  • NSURL URLWithString:引发异常

    简而言之 NSURL URLWithString 似乎引发了一个例外 根据文档 如果字符串格式错误 则返回 nil 没有提到在任何情况下都会引发异常 除此之外 我还对 URL 进行编码并检查nil在将字符串转换为 URL 之前 任何人都可以
  • UIDatePickerModeCountDownTimer模式中的UIDatePicker:如何更改为分钟和秒模式?

    我在故事板中添加了 UIDatePicker 并将模式设置为 CountDownTimer 它只显示小时和分钟 但我需要的是分钟和秒模式 我不需要小时列 需要分钟和秒列 我尝试更改间隔 但最小值是 1 分钟 是否可以 我怎样才能做到这一点
  • 用 UIView 像翻书一样翻页?

    我正在尝试在之间切换UIViews让它看起来就像你正在翻书的一页 The UIViewAnimationTransitionCurlUp如果我能让它向左或向右卷曲 那就非常接近了 这可能吗 我尝试过使用CATRansition但没有一种动画
  • UISplitViewController - 推送模态视图

    使用 UISplitViewController 时推送模态视图的最佳实践是什么 您会从 RootViewController DetailViewController 还是直接从应用程序委托推送 理想情况下 我想要实现的功能是在基于某些条

随机推荐

  • Android模拟器和virtualbox不能同时运行

    每当我运行 Virtualbox 时 我都无法启动 Android 模拟器映像 反之亦然 AVD管理器中的错误消息是 ioctl KVM CREATE VM failed Device or resource busy ko failed
  • PowerShell - 匹配运算符和多个组

    我正在 PowerShell 中处理以下日志条目 我正在尝试使用以下命令提取所有活动名称和持续时间 match操作员 但我只拿回一组比赛 当我使用 C 做同样的事情时 我没有得到我看到的所有匹配项Regex目的 有人可以解释我做错了什么吗
  • 在 lucene 索引中存储和检索 Json 对象

    我已经将一组 json 对象存储到 lucene 索引中 并且还想从索引中检索它 我使用的是lucene 3 4 那么有没有任何库或简单的机制可以在 lucene 中实现这一点 例如 Json 对象 BOOKNAME1 id 1 name
  • Python Pandas 警告:尝试在 DataFrame 切片的副本上设置值

    我有一个 Pandas DataFrame 我想用以下代码更改列的所有值 df Population round df Population 1000000 1 我收到以下警告 A value is trying to be set on
  • ruby 中的字节与代码点

    ruby 字符串函数之间有什么区别 代码点和字节 abcd bytes gt 97 98 99 100 abcd codepoints gt 97 98 99 100 bytes无论字符大小如何 都返回单个字节 而codepoints返回
  • Powershell 版本 5 Copy-Item -FromSession 找不到

    我正在尝试通过以下方式从远程会话复制一些日志文件 FromSession的参数Copy Itemcmdlet 在呼叫计算机上我安装了 PS 版本 5 运行脚本时我收到以下错误 Copy Item A parameter cannot be
  • Lodash 地图并返回唯一值

    我有一个 lodash 变量 var usernames map data usernames 产生以下结果 joebloggs joebloggs simongarfunkel chrispine billgates billgates
  • URIencode 和冒号

    冒号是一个可以根据许多站点编码为 3A 的字符 当我尝试使用编码时URIencode它不工作 例如 如果我尝试编码URIencode 然后什么也没有发生 返回冒号 为什么是这样 有人可以帮我吗 提前致谢 The encodeURI 对特殊字
  • 如何运行 Alamofire 库

    I downloaded the alamofire library and opened the iOS Example xcodeproj but it won t run In import Alamofire when i comm
  • 到 Task.Run 或不到 Task.Run

    假设我有一个包含异步方法的接口 并且该接口有两个不同的实现 这两种实现之一自然是异步的 而另一个则不是 实现非异步方法的 最正确 方法是什么 public interface ISomething Task
  • 无法在 xcode 崩溃报告中找到发生崩溃的代码

    我在 x code 中收到了几个崩溃报告 由用户报告 但无法找出它的用途 我在项目中打开它 但它没有显示发生崩溃的代码行 显然我尝试单击堆栈跟踪的每一行 如果您想在已发布的版本中触发崩溃 那么您应该将崩溃报告程序集成到您的项目中 并且Cra
  • 如何检查两个异步任务是否成功完成

    在函数中实现此流程图的最佳和最简单的方法是什么 现在我正在使用两个调度组 但我需要检查它们是否都已完成 而不仅仅是它们何时完成 如果他们完成了 那么 Friends 数组将包含元素 昵称数组将包含元素 注 FB是Facebook FIR是F
  • Python-读取具有不同分隔符的数据文本文件

    我有一个文件 其中字段由 分隔 子字段由 分隔 子字段中的项目由 分隔 我想读Python 一段时间后 我可能可以逐行阅读它 然后分割所有内容 但我相信这种事情已经存在了 文件的一行 0 16 250 1 0 053 RIG DIS 1 4
  • Prism - EventAggregator.GetEvent<>.Subscribe() - 使用泛型和约束

    我在使用作为棱镜框架一部分的事件聚合器订阅事件时遇到问题 如果我使用诸如 eventAggregator GetEvent
  • 无法从控制台将 .csv 导入 Cloud SQL

    我尝试了多种方法将 csv 文件导入 Cloud SQL PostgreSQL 但没有成功 psql f import sql 不起作用 它说我必须是超级用户才能导入 但 copy 有效 所以我尝试了 copy 但失败了 我得到 postg
  • 在 OpenLayers 3.20+ 中使用 view.fit() 使用 view.animate()

    我有以下为 OpenLayers 3 20 之前版本编写的代码 fitViewToFeature function viewer feature var pan ol animation pan source viewer olView g
  • .NET Core 是否有任何等效的 GAC?

    据我目前在完整 NET Framework 中的了解 当我们将框架安装到计算机上时 它将整个 BCL 部署到计算机的 GAC 中 这样 当我们使用 NET 开发软件并将其部署到该计算机时 它将使用 BCL 程序集 这些程序集在安装 NET
  • 嵌入式 dylibs/frameworks 仅支持 iOS 8.0 及更高版本的架构 armv7

    我刚刚从 Xcode 6 4 升级到 Xcode 7GM 现在在运行旧项目时收到以下警告 embedded dylibs frameworks are only supported on iOS 8 0 and later rpath xx
  • 是否可以迭代多个枚举类?

    我有三个枚举类 我想以某种方式将它们放入一个数组中 循环遍历该数组并在每个枚举类中调用相同的方法 这在Java中可能吗 在我看来 你不能将枚举类型放置在数组结构中 除非我错过了如何放置 谢谢 让每个枚举类型实现一个通用接口具有常用方法您想要
  • 两个视图控制器之间viewDidAppear和viewDidDisappear的回调顺序

    据我所知 至少有两种方法可以在另一个 UIViewController 上呈现 UIViewController 第一种是在 UIViewController 上使用 presentModalViewController animated