Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我';我正在构建导致.navigationTitle不出现的SwiftUI项目?_Ios_Swift_Swiftui_Swiftui Navigationview - Fatal编程技术网

Ios 我';我正在构建导致.navigationTitle不出现的SwiftUI项目?

Ios 我';我正在构建导致.navigationTitle不出现的SwiftUI项目?,ios,swift,swiftui,swiftui-navigationview,Ios,Swift,Swiftui,Swiftui Navigationview,我的SwiftUI项目在某一点后拒绝显示导航标题。我使用的是一种导航结构,在我所见过的任何示例项目上都没有实现过,但它对我来说是有意义的,到目前为止似乎一直在工作。我的怀疑是,由于我使用的是不同的导航结构,这是问题的一部分。.navigationBar在每页上都有,但标题不显示 我在堆栈溢出和其他方面尝试了许多解决方案。我在下面列出的每一页上都尝试了.navigationBarHidden(false)、.navigationBarTitle()和.navigationBarBackButto

我的SwiftUI项目在某一点后拒绝显示导航标题。我使用的是一种导航结构,在我所见过的任何示例项目上都没有实现过,但它对我来说是有意义的,到目前为止似乎一直在工作。我的怀疑是,由于我使用的是不同的导航结构,这是问题的一部分。
.navigationBar
在每页上都有,但标题不显示

我在堆栈溢出和其他方面尝试了许多解决方案。我在下面列出的每一页上都尝试了
.navigationBarHidden(false)
.navigationBarTitle()
.navigationBarBackButtonHidden(true)
的组合,没有任何更改。我还尝试了我能想到的每个位置来放置这些
.navigationBar
修改器的组合

最近,我发现了
.toolbar
,这也没什么变化。我的怀疑是(如下面的代码片段所示),由于
NavigationView
位于第一个视图(WelcomeUI.swift),我无法将
.navigationBarTitle
放在代码的更深处

下面是我当前的导航结构,以及每个文件中的代码位:

欢迎光临

struct WelcomeUI: View { 
   var body: some View {
      NavigationView {
         VStack {
            //NavigationLink(destination: SignupUI(), label: {
               //Text("Sign Up")
            //}
            NavigationLink(destination: LoginUI(), label: {
               Text("Log In")
            }
         }
      }
   }
}
斯威夫特酒店

struct LoginUI: View {
   var body: some View {
      VStack {
         
         NavigationLink(destination: MainUI(), label: { Text("Log In") })
         //Button(action: { ... }
      }
   .navigationBarHidden(false)
   }
}
struct MainUI: View {
   var body: some View {
      TabView {
         //SpendingView()
            //.tabItem {
               //Image(...)
               //Text("Spending")
            //}
         //SavingView()
            //.tabItem {
               //Image(...)
               //Text("Saving")
            //}
         //AddView()
            //.tabItem {
               //Image(...)
               //Text("Add")
            //}
         //EditView()
            //.tabItem {
               //Image(...)
               //Text("Edit")
            //}
         SettingsView()
            .tabItem {
               //Image(...)
               Text("Settings")
            }
      }
      .navigationBarBackButtonHidden(true)
   }
}
注意:SignupUI.swift本质上与LoginUI.swift相同

struct LoginUI: View {
   var body: some View {
      VStack {
         
         NavigationLink(destination: MainUI(), label: { Text("Log In") })
         //Button(action: { ... }
      }
   .navigationBarHidden(false)
   }
}
struct MainUI: View {
   var body: some View {
      TabView {
         //SpendingView()
            //.tabItem {
               //Image(...)
               //Text("Spending")
            //}
         //SavingView()
            //.tabItem {
               //Image(...)
               //Text("Saving")
            //}
         //AddView()
            //.tabItem {
               //Image(...)
               //Text("Add")
            //}
         //EditView()
            //.tabItem {
               //Image(...)
               //Text("Edit")
            //}
         SettingsView()
            .tabItem {
               //Image(...)
               Text("Settings")
            }
      }
      .navigationBarBackButtonHidden(true)
   }
}
迈努伊·斯威夫特

struct LoginUI: View {
   var body: some View {
      VStack {
         
         NavigationLink(destination: MainUI(), label: { Text("Log In") })
         //Button(action: { ... }
      }
   .navigationBarHidden(false)
   }
}
struct MainUI: View {
   var body: some View {
      TabView {
         //SpendingView()
            //.tabItem {
               //Image(...)
               //Text("Spending")
            //}
         //SavingView()
            //.tabItem {
               //Image(...)
               //Text("Saving")
            //}
         //AddView()
            //.tabItem {
               //Image(...)
               //Text("Add")
            //}
         //EditView()
            //.tabItem {
               //Image(...)
               //Text("Edit")
            //}
         SettingsView()
            .tabItem {
               //Image(...)
               Text("Settings")
            }
      }
      .navigationBarBackButtonHidden(true)
   }
}
注意:MainUI.swift中的所有视图结构相同

设置视图

struct SettingsView: View {
   var body: some View {
      ZStack {
         Form {
            Section(header: Text("Section Header")) {
               NavigationLink(destination: WelcomeUI()) {
                  Text("Setting Option")
               }
            }
            Section {
               //Button("Log Out") {
                  //self.logout()
               //}
               Text("Log Out")
            }
         }
         .navigationBarTitle("Settings") // This has no effect on code no matter where it is place in SettingsView.swift
      }
   }
}

我还应该注意,只有MainUI.swift之后的页面才受此影响。WelcomeUI.swift和LoginUI.swift工作正常。

查看
MainUI
导航标题。我只是在每个
视图中添加一个标题来查找发生了什么

import SwiftUI
struct SubSpendingView: View {
    var body: some View {
        ScrollView{
            Text("SubSpendingView")
            
        }.navigationBarTitle("SubSpending"
                             //, displayMode: .inline
        )
    }
}
struct SpendingView: View {
    var body: some View {
        ScrollView{
            Text("SpendingView")
            NavigationLink("subSpending", destination: SubSpendingView())
        }.padding()
    }
}
struct WelcomeUI: View {
    var body: some View {
        NavigationView {
            VStack {
                //NavigationLink(destination: SignupUI(), label: {
                //Text("Sign Up")
                //}
                NavigationLink(destination: LoginUI(), label: {
                    Text("Go to Log In")
                })
            }.navigationTitle(Text("WelcomeUI"))
        }
    }
}
struct SettingsView: View {
    var body: some View {
        VStack{
            ZStack {
                
                
                Form {
                    Section(header: Text("Section Header")) {
                        NavigationLink(destination: WelcomeUI()) {
                            Text("Setting Option")
                        }
                    }
                    Section {
                        //Button("Log Out") {
                        //self.logout()
                        //}
                        Text("Log Out")
                    }
                }
                Button("say-high", action: {print("Hi")})
                // This has no effect on code no matter where it is place in SettingsView.swift
            }
        }//.navigationBarTitle("Settings")
    }
}
struct LoginUI: View {
    var body: some View {
        VStack {
            
            NavigationLink(destination: MainUI(), label: { Text("Log In") })
            //Button(action: { ... }
        }.navigationTitle(Text("LoginUI"))
        .navigationBarHidden(false)
    }
}
struct MainUI: View {
    @State var selectedTab: Views = .adding
    var body: some View {
        
        TabView(selection: $selectedTab) {
            SpendingView()
                .tabItem {
                    Image(systemName: "bag.circle")
                    Text("Spending")
                }.tag(Views.spending)
            //SavingView()
            //.tabItem {
            //Image(...)
            //Text("Saving")
            //}
            Text("Adding View")
                .tabItem {
                    Image(systemName: "plus")
                    Text("Add")
                }.tag(Views.adding)
            Text("Edit View")
                .tabItem {
                    Image(systemName: "pencil")
                    Text("Edit")
                }.tag(Views.edit)
            SettingsView()
                .tabItem {
                    Image(systemName: "gear")
                    Text("Settings")
                }.tag(Views.settings)
        }
        //This overrides the navigationTitle in the tabs
        .navigationBarTitle(Text(selectedTab.rawValue)
                            //, displayMode: .inline
        )
        .navigationBarBackButtonHidden(true)
    }
}
enum Views: String{
    case settings = "Settings"
    case spending = "Spending"
    case adding = "Add"
    case edit = "Edit"
}
struct PaddyNav: View {
    var body: some View {
        WelcomeUI()
            //Wont work
            .navigationTitle(Text("PaddyNav"))
    }
}

struct PaddyNav_Previews: PreviewProvider {
    static var previews: some View {
        PaddyNav()
    }
}

空白空间可以是<代码>导航视图>代码>查找>代码>。工具栏< /代码>将标题放在里面或其他东西。此外,如果您有最小的可复制代码,这将是最好的。如果我们中的任何人复制并粘贴,我们可以立即在我的画布或模拟器中看到。没有未提供的句点、星号、
视图
s。感谢@loremipsum提供的提示。我查看了
.toolbar
,也没有任何变化。我有更多关于问题的信息,并将相应地更新帖子。这是一个很好的开始!我已经对每个视图进行了您建议的更改。但是,它仅对在
MainUI.swift
中的
@State var selectedTab
下选择的任何视图起作用。正如我所说,我为每个视图添加了枚举,并在
MainUI.swift
中标记了每个视图。在每个非
所选选项卡的视图中,它都会显示
导航标题
,但即使向下滚动也会保持静止。您是否有一个适用于所有视图的解决方案?它保持静止?添加一些代码或照片。目前我在
@State var selectedTab:Views=”中选择了
AddView()
。添加
以及
MainUI
中相应的枚举添加和标记。我不知道你说的静止是什么意思。您想要它
.inline
?当我向下滚动视图时,标题应该从
.large
变为
.inline
,唯一可以这样做的是在
selectedTab
中选择的任何视图。您还将在第二张照片中注意到,
导航栏
是透明的,标题没有变成
.inline