xcode 我的项目有2个导航栏风格;一个默认的swiftui导航栏和一个自定义的swiftui导航栏,有没有办法在某个点隐藏swiftUI导航栏?

aiazj4mn  于 2022-11-18  发布在  Swift
关注(0)|答案(1)|浏览(162)

我正在做一个项目,我正在实现SwiftUI默认导航栏[导航视图和导航链接],然后我为其余屏幕创建了自己的自定义导航栏。
因此,我在我的应用程序中使用SwiftUI navbar进行登录过程。但是在用户登录后,他们会被带到主页。这是我实现自己的navigationBar风格的地方。
现在您可以看到,我使用以下代码将登录按钮与主页链接在一起:导航链接(目标:首页检视())
你知道问题出在哪里了,就像我嵌套了两个导航视图,所以我得到了两个导航栏。我想隐藏登录过程中的默认导航栏。所以我尝试使用[.navigationBarHidden(true)],但它根本不起作用。
简而言之,我如何实现2个导航视图[一个默认视图,一个自定义视图],其中一个用于我的应用程序的一个部分,另一个用于另一个部分,而不会像这样发生冲突。
我能找到的最好的是:
//将此添加到我的主页视图()。navigationBarTitleDisplayMode(.inline)。navigationBarHidden(true)
导航栏显示模式更改为内联,但它仍然存在:)
我还是个初学者,所以你能帮帮我吗?

iecba09b

iecba09b1#

只需要两个UIViewController,一个用于登录,一个用于主视图。
因此,当从登录视图重定向到主视图时,不要通过NavigationLink进行重定向,因为那样你会遇到同样的问题(如果你做得正确,这应该是不可能的,因为你的登录视图和主视图是由它们自己的UIViewController保存的)。
只需关闭(viewControllerLogin.dismiss)登录视图并(viewControllerHome.present)显示主屏幕即可。
如果你在谷歌上搜索一小段,你基本上可以把一个(SwiftUI)视图 Package 到一个UIViewController中,这应该不是问题。
大概是这样:Example

相关问题