- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码结构,这给我带来了很多麻烦:
//Main View
struct ContentView: View {
var body: some View {
NavigationView{
ZStack(alignment: .center){
CarouselBuilder()
ProfileInvoke().navigationBarTitle("").navigationBarHidden(true)
}
}
}
}
//Carousel filled with Cards from a DB
...code irrelevant for my problem
//Profile Invoke -> Invokes a slide out menu called Menu that has NavigationLinks in it
struct Menu: View {
var body: some View {
ZStack{
VStack(alignment: .center){
MenuButton(buttonText: "Settings", buttonCallView: AnyView(SettingsView() ))
MenuButton(buttonText: "My Favourites", buttonCallView: AnyView(MyFavouritesView()))
MenuButton(buttonText: "Sign Out", buttonCallView: AnyView(SignOutView()))
}.frame(width: UIScreen.main.bounds.width/1.2,alignment: .top)
}
}
}
//MenuButtons are basic NavigationLinks linking to certain Views given as argument when calling them
我现在将 ZStack
包装在 NavigationView 的主视图中,我需要这样做才能使 NavigationLinks
正常工作。我还必须在这个“顶层”级别执行此操作,因为我需要新 View ,它将被滑出菜单中的链接调用以占据整个屏幕,而不仅仅是显示滑出 View 的宽度。
我现在的问题是我当然不希望导航栏占用主视图中的空间。为此,我将它的隐藏属性设置为 true。这会贯穿整个应用程序,并且还会禁用菜单中按钮链接到的 subview 中的导航 View 。这让我无法回头。
我的问题是:1)有没有更优雅的方式来做这一切?2) 如何在 subview 中重新调用导航栏? (将它们的隐藏导航栏属性设置回 false 无效。
最佳答案
下面是一种在 Root View 中隐藏导航栏并在 subview 中显示的可能方法。唯一需要的修改是在 Root View 中。
使用 Xcode 11.4/iOS 13.4 测试
这里只是一个根, subview 是常规的,不需要针对这种情况的特殊代码。查看内嵌的重要注释。
struct RootNavigationView: View {
@State private var hideBar = true // << track hide state, and default
var body: some View {
NavigationView {
VStack {
Text("I'm ROOT")
Divider()
NavigationLink("Goto Child", destination: NextChildView(index: 1))
.simultaneousGesture(TapGesture().onEnded {
self.hideBar = false // << show, here to be smooth !!
})
}
.navigationBarHidden(hideBar)
// .navigationBarTitle("Back to Root") // << optional
.onAppear {
self.hideBar = true // << hide on back
}
}
}
}
关于ios - SwiftUI 显示/隐藏 NavigationBar 的标题问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60996266/
我需要管理嵌入在使用标准、浅色、模糊层的 NavigationController 中的两个 ViewController 之间的转换。应用程序这部分中的所有 ViewController 看起来都非
我有一个包含 3 个不同 NavigationController 的 Storyboard: 在第一个 NavigationController 的根 Controller 中,我在代码中添加了一个
先说说我的情况。我在我的 appDelegate 中设置了 UINavigationBar 颜色,例如: [[UINavigationBar appearance] setBarTintColor:[
这两种说法有什么区别。为了隐藏导航栏,我使用以下语句之一在 viewWillAppear 方法中隐藏导航栏,如下所示: -(void)viewWillAppear:(BOOL)animated {
目前我找不到任何方法来更改 SwiftUI 中导航栏的颜色/背景。有小费吗? 最佳答案 为了改变所有 View Controller 的导航栏颜色,你必须在 AppDelegate.swift 中设置
我可以自定义 QlPreviewController Controller 中导航栏的颜色吗? 我尝试过以下 [[UINavigationBar appearanceWhenContainedIn:
我正在开发一款带有 webview 布局的安卓游戏。我想在用户玩游戏时隐藏导航栏。我找到了一些解决方案,但是当我触摸屏幕时,导航栏出现了。 我做错了什么?这是我的无效解决方案: int mUIFla
我的导航栏上有这种奇怪的行为: 而且我不知道如何解决它。 我在 Storyboard上的设置是: 我希望条形颜色清晰,以便获得完美的模糊效果。 有任何想法吗? 感谢您的关注。 最佳答案 尝试这些设置可
我正在尝试实现一种 AlertWindow 类的东西,我正在使用 WindowsManager 的实例从服务。 View 可见且可访问。但是屏幕上 NavigationBar 上的后退/主页按钮似乎没
我想隐藏NavigationBar和stateBar以显示全屏图像,但似乎navigationBar并未完全隐藏: 代码如下: [[UIApplication sharedApplication]
我找不到关于如何使用 完成此操作的任何文档组件...基本上,当我的一个场景加载时,我希望能够传递一个 route.navBarColor到我的导航器,它将自动更改栏的背景颜色。 我尝试使用 {nav
我正在向导航栏层添加渐变,并且效果很好。当我推送另一个 View Controller 和弹出 View Controller 时,问题就来了。父 View Controller 有右边的条形按钮项目
我在 iOS 7 模拟器和设备上都遇到了一个奇怪的图形问题。 在按下 TableView 中的单元格后,我以编程方式从 Storyboard 中调用 segue: [self performSegue
我有一个 NavigationViewController,它的根是一个普通的 UIViewController。我通过以下方式以编程方式呈现 TableViewController: self.pe
我有 2 个 VC。在这两种情况下,我都将代码编写为 NavigationController 外观,但是当我从第二个 VC 返回到第一个时,我的一切都是黑色的...... 第一位风投: overri
我正在使用带有 UITableView 的普通 View Controller ,它嵌入到导航 Controller 中,导航 Controller 嵌入到标签栏 Controller 中: 标签栏
我的 Storyboard中有一个导航栏,并设置了以下约束: Horizontal Space - (-16) - View Navigation Bar Horizontal Space - (-1
我的结构如下: ContainerView --embed segue--> NavigationController --> UITableViewController A --push segue
嘿,我在 UINavigationController 中有一堆 UIViewController。通常,标题(或 NavigationItem 的标题)决定了 NavigationBar 中显示的标
Second Image 问题是当我弹出我的 Controller 时,导航栏变成黑色,这非常烦人。需要帮助! 最佳答案 当您弹出屏幕时,您会回到上一屏幕。在预览屏幕中,您必须在 viewWillAp
我是一名优秀的程序员,十分优秀!