swift - TabbarController 具有多个选项卡,其中包含具有主 > 详细信息类的导航控制器,不更新选项卡之间的视图
问题描述
我遇到了一个关于 tabbarController 的奇怪问题。
上下文:我以编程方式创建了一个应用程序。没有故事板或笔尖。
TabbarController 有 5 个选项卡。每个选项卡都有自己的 UINavigationController 实例。
每个 navigationController 都有自己的不同类的 rootViewController。
其中 3 个选项卡与 customClass 与同一 DetailViewController 类具有主从关系。
每个 MasterViewController(不同的类/类型)都有一个 tableView 并且在选择一个项目时,他们每个人都会创建一个相同类的 DetailViewController 的新实例,但他们自己的新实例。
一切正常,除非 DetailViewController 上有两个或更多选项卡。
如果两个或多个选项卡位于同一类型的 DetailView 上(每个选项卡都有它们自己的实例),则视图不会针对它们之间的不同状态进行更新。
一个 DetailView 应该有一个隐藏在一个选项卡中但在另一个选项卡中可见的特定按钮,但视图不会因这种差异而更新。
例如,如果从 ListingsViewController 导航到 DetailView,则底部的“心脏”和“聊天”按钮。
如果从 userProfileViewController 导航到,则应显示“已售出”按钮
这些更改在导航到其他选项卡和从其他选项卡到详细视图时起作用。但不是在两个选项卡中具有与两个选项卡中的 topViewController 相同类型的 DetailViewController 的选项卡之间。
我已经打印出来并仔细检查了,每个 navController、viewController 和 View 都是具有不同内存地址的不同实例。我试图删除 tabbarController 的所有子视图,并手动将 presentingViewController.view 作为子视图添加到 tabbarcontroller。不会改变这种行为。
这是怎么回事?
解决方案
推荐阅读
- c# - 使用 ISerializationSurrogate 反序列化自引用对象时抛出异常
- spring-boot - 如果仅提供 1 个参数,则 SpringBoot 自动修剪 @RequestParam 列表中的空格
- gatsby - 如何使用 GitHub Actions 在构建之间缓存 GatsbyJS .cache 和公共文件夹
- javascript - 对于较大的文件,文件上传不断崩溃 - NodeJS
- floating-point - 现代处理器的浮点计算变化有多大?
- linux - 在更新文件时安全地 tar 压缩文件
- python - PyTest 参数化夹具?如何将一个大的测试功能分成几个
- amazon-web-services - 检查我是否以 IAM 用户身份登录
- spark-structured-streaming - 无法读取使用分区的 spark 结构化流创建的分区配置单元表
- python-3.x - ansible aws_s3 错误:botocore.exceptions.ClientError:调用 HeadBucket 操作时发生错误(400):错误请求