首页 > 解决方案 > 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。不会改变这种行为。

这是怎么回事?

标签: swiftviewuikittabbarnavigationcontroller

解决方案


推荐阅读