我正在制作一个用户需要登录的应用程序,然后带我进入一个TabView,其中有3个不同的视图(导航视图)。
问题出在我登录后,并使用NavigationLink将我发送到TabView,向我显示3个不同的视图,其中有NavigationBarTitles。它还在我的上方创建另一个(空)NavigationBarTitle。
已经尝试使用以下常用方法:在此单个视图内,消除NavigationView属性,因为它通常会起作用,但在这种情况下不起作用。
登录视图
import SwiftUI
struct LogInView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink (destination: ContentView()) {
Text("Log In")
.foregroundColor(.white)
.padding(15)
.background(Color.blue)
.cornerRadius(10)
}
}.navigationBarTitle("Log In View")
}
}
}
struct LogInView_Previews: PreviewProvider {
static var previews: some View {
LogInView()
}
}
TABVIEW
import SwiftUI
struct ContentView: View {
@State private var selection = 0
var body: some View {
TabView(selection: $selection){
DetailView()
.font(.title)
.tabItem {
VStack {
Image("first")
Text("First")
}
}
.tag(0)
}.edgesIgnoringSafeArea(.top)
.navigationBarBackButtonHidden(true)
.navigationBarHidden(true)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
详细视图
import SwiftUI
struct DetailView: View {
var body: some View {
NavigationView {
List {
Text("Hi")
Text("Hi")
Text("Hi")
}.navigationBarTitle("DetailView")
}
}
}
struct DetailView_Previews: PreviewProvider {
static var previews: some View {
DetailView()
}
}
答案 0 :(得分:0)
您可以优化ContentView中的所有内容,而不是detailView。尽管推理在您当前的工作中还算不错,但演示文稿背后的逻辑可能会涉及一些调整。
struct ContentView: View {
@State private var selection = 0
var body: some View {
TabView(selection: $selection){
DetailView()
.font(.title)
.tabItem {
VStack {
Image("first")
Text("First")
}
}
.tag(0)
}.edgesIgnoringSafeArea(.top)
.navigationBarBackButtonHidden(true).navigationBarTitle("DetailView", displayMode: .inline).navigationBarHidden(true)
}
}
struct DetailView: View {
var body: some View {
List {
Text("Hi")
Text("Hi")
Text("Hi")
}
}
}
答案 1 :(得分:0)
如果子视图的父级(或其父级的父级..)包装在一个子视图中,则不应将其包装在var link = document.getElementsByTagName("a");
for (var i = 0; i < link.length; i++) {
arr_link = (link[i].href).split("#");
var fragment = "";
if (arr_link[1]) { fragment = "#" + arr_link[1]; }
var my_new_url = arr_link[0].replace(/(\?)utm[^&]*(?:&utm[^&]*)*&(?=(?!utm[^\s&=]*=)[^\s&=]+=)|\?utm[^&]*(?:&utm[^&]*)*$|&utm[^&]*/gi, '$1');
link[i].href = my_new_url + fragment;
}
中。您仅在显示的照片上有两个NavigationView
,所以在DetailView中删除其中一个,它将仍然继承自LogInView:
NavigationView