如何检查视图控制器是否属于 UIHostingController 类型

问题描述

我有一个 UIHostingController,它托管一个名为 CatalogView 的 SwiftUI 视图。 当显示它时,附加了一个环境对象,所以基本上从 UIKit 它显示如下:

let rootCatalogView = CatalogView()

let appState = AppState.get()
let catalogView = UIHostingController(rootView: rootCatalogView.environmentObject(appState))

navigationController.pushViewController(catalogView,animated: true)

现在稍后我需要检查这个 UIHostingController 是否在 navigationController.viewControllers 的列表中

type(of:) 显示以下内容,哪种有意义:

UIHostingController<ModifiedContent<CatalogView,_EnvironmentKeyWritingModifier<Optional<AppState>>>>

像 vc.self 是 UIHostingController.Type 或 vc.self 是 UIHostingController.Type 之类的东西都返回 false(vc 是 navigationController.viewControllers 的一个元素

以下显然有效,它返回真,但 UIHostingController 初始化的任何变化都会改变它的类型

vc.isKind(of: UIHostingController<ModifiedContent<CatalogView,_EnvironmentKeyWritingModifier<Optional<StoreManager>>>>.self)

如何检查视图控制器是否为 UIHostingController 类型? 或者至少我如何将控制器投射到 UIHostingController 以便我可以检查它的根视图?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)