在 SwiftUI 中用自定义视图替换 TabBar

问题描述

我有一个旧的 Objective-c 项目,它使用 UITabBarController 进行导航,我在其中一个选项卡中添加一个网格视图(使用 swiftUI)。为此,我将 swiftUI 视图嵌入到托管控制器中。请参阅下图,显示当前故事板:

enter image description here

加载网格视图工作正常:

enter image description here

现在,问题来了。我需要做的是:当用户按下 import faust app = faust.App('myapp',broker='kafka://') @app.agent() async def add(stream): async for op in stream: yield op.x + op.y 时,我需要用自定义视图替换标签栏。例如:

enter image description here

我通过让 UIHostController 在用户点击 Select 时隐藏栏来完成上述操作:

Select

然后在 swiftUI 中,我有

class Gridviewmodel: ObservableObject {
@Published var isSelectModeEnabled = false
}

class GridViewHostController: UIHostingController<GridView> {
     private let gridviewmodel = Gridviewmodel()
     required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder,rootView: GridView(model: gridviewmodel))
     }

     @IBAction func onSelect(_ sender: Any) {
        guard let tabBarController = self.tabBarController else { return }
        let isSelectModeEnabled = !tabBarController.tabBar.isHidden
        tabBarController.tabBar.isHidden = isSelectModeEnabled
        gridviewmodel.isSelectModeEnabled = isSelectModeEnabled
    }
 }

上面的问题之一是,当我最小化应用程序并将其重新打开时,自定义视图会像这样被按下:

enter image description here

不知道为什么会发生这种情况,而且我很确定有更好的方法来完成所有这些,但我似乎找不到它。希望有高人指点一下

解决方法

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

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

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