繁体   English   中英

如何从SwiftUI推入现有的UINavigationController堆栈?

How to push onto an existing UINavigationController stack from SwiftUI?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我们SwiftUI嵌入在UIKitUIHostingViewController中的SwiftUI视图,如下所示:

首先制作UIViewController

    func hostingController() -> UIViewController {
    let swiftUIView = swiftUIView(viewModel: viewModel(data: [Data, Data, Data]))
    return UIHostingController(rootView: swiftUIView)
}

然后将其推入UINavigationView堆栈:

[self.navigationController pushViewController:hostingViewController animated:YES];

这使我们进入了SwiftUI的环境。 但是,如果我们的SwiftUI环境具有自己的带有NavigationViewNavigationLink的导航堆栈,则原始navigationBar的后退按钮只能导航回到原始呈现的UIViewController

有没有办法将NavigationView嵌入的SwiftUI视图推到现有的UINavigationController堆栈上?

到目前为止,我们唯一的想法是为每个新的SwiftUI屏幕创建一个新的UIHostingViewController ,并通过某种委托方法将其推入堆栈。

我们正在寻找的是这样的:

UINavigationStack: [UIViewController -> UIViewController -> SwiftUIView -> SwiftUIView]

navigationBar后退<箭头的行为将与预期的一样。

如果可以进一步说明,请告诉我们!

问题暂未有回复.您可以查看右边的相关问题.
2 将3个视图推入堆栈后,UINavigationController崩溃

我有一个导航控制器,其结构如下: 我可以选择一个类别,然后选择一个项目以查看其详细信息。 我可以做两次,即Back项目列表并选择另一个项目。 如果我第三次尝试,该应用程序将崩溃,我将objc_msgSend到堆栈中,仅此而已。 但是,我没有选择其他项目,而是转到类别列表,然后选择另 ...

4 UINavigationController堆栈

诸如Instapaper和Twitterrific之类的应用程序会启动不是其导航堆栈根视图的视图。 我们知道这一点是因为初始视图已经具有后退按钮。 Instapaper会深一层展开(Instapaper&gt;稍后阅读),而Twitterific深两层展开(帐户&gt;帐户&gt;所有推文) ...

7 将新的视图控制器推入堆栈时,UINavigationController自定义LabelView

我所有的UINavigationController都设置了我的初始视图控制器,该控件允许用户输入一个值。 它还具有一个自定义UILabel作为titleView ,因此我可以显示带有绿色文本的完全“扁平”的导航栏。 然后,当他们按下UIButton ,它将一个新视图压入堆栈,这显然消除 ...

8 如何将uinavigationcontroller推入另一个uinavigationcontroller

目前我有一个使用uinavigationcontroller但仅在root视图中隐藏导航栏的应用程序,我想在某些应用程序中将此应用程序用作外部库,并将整个应用程序作为一个菜单项推送。 但是,当我尝试在导航堆栈中推送此应用程序时,它隐藏了导航barand我无法进入我之前的列表。 如何在 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM