SwiftUi Tabview 在开始时未正确加载该视图
SwiftUi Tabview not loading that views properly at start
我是 swiftui 和一般编程的新手,所以如果我使用的语言不正确,请原谅。
我的问题是,我的应用程序一启动,它就会显示一个非常奇怪的视图,顶部有一个导航栏和一个空白屏幕。我必须来回滑动几次才能让应用程序按预期运行。这是问题的Video。
所以在我的内容视图文件中,我有一个选项卡栏,其中引用了我的其他 2 个视图。
TabView{
SearchPageView()
.tabItem {
Image(systemName: "magnifyingglass")
.font(.system(size: 25, weight: .bold))
}
MainPageView()
.tabItem {
Image(systemName: "house")
}
}.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
.ignoresSafeArea()
我为每个视图创建了一个单独的文件。这两个视图都包含在 naviagtionView 中,稍后我使用导航 link 导航到单独的视图。两个页面写的完全一样,只是滚轮的类型不同,一个是水平的,一个是垂直的。
NavigationView{
VStack{
Spacer()
Text("Friends")
.foregroundColor(.white)
.font(.largeTitle)
.fontWeight(.bold)
ScrollView(.horizontal,showsIndicators: false){
HStack{
ForEach(users){ users in
NavigationLink(destination: UserDisplayPage(user: users).navigationTitle("")
.navigationBarHidden(true)
){
VStack(alignment: .center){
Image(users.imageName)
.resizable()
.aspectRatio( contentMode: .fill)
.frame(width: imageSize, height: imageSize
)
.cornerRadius(imageSize/2)
.overlay(
Circle().stroke(Color.white, lineWidth: 5)
)
.padding()
Text(users.name)
.font(.title)
.fontWeight(.bold)
.foregroundColor(.white)
}
}
}
}
}
Spacer()
}.background(
LinearGradient(colors: [.myPurple,.myCyan,.myOrange], startPoint: .topLeading, endPoint: .bottomLeading)
)
.navigationTitle("Good Evening, Nihal")
.foregroundColor(.myOrange)
}
感谢任何帮助。提前致谢。
您应该删除 ContentView 中的 .tabViewStyle
修饰符。
TabView
在 SwiftUI 中有两个截然不同的角色。一种是管理标签栏,它允许您点击标签栏中的图标来选择要显示的视图;另一个是提供可滑动的、分页的视图集合。
鉴于您在子视图中使用了 NavigationView
,我会说第一种样式就是您想要的样式。这是默认设置,所以删除样式修饰符(将选项卡视图切换为第二种形式),一切都应该很好。您还应该能够删除 .ignoresSafeArea
修饰符。
我是 swiftui 和一般编程的新手,所以如果我使用的语言不正确,请原谅。
我的问题是,我的应用程序一启动,它就会显示一个非常奇怪的视图,顶部有一个导航栏和一个空白屏幕。我必须来回滑动几次才能让应用程序按预期运行。这是问题的Video。
所以在我的内容视图文件中,我有一个选项卡栏,其中引用了我的其他 2 个视图。
TabView{
SearchPageView()
.tabItem {
Image(systemName: "magnifyingglass")
.font(.system(size: 25, weight: .bold))
}
MainPageView()
.tabItem {
Image(systemName: "house")
}
}.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
.ignoresSafeArea()
我为每个视图创建了一个单独的文件。这两个视图都包含在 naviagtionView 中,稍后我使用导航 link 导航到单独的视图。两个页面写的完全一样,只是滚轮的类型不同,一个是水平的,一个是垂直的。
NavigationView{
VStack{
Spacer()
Text("Friends")
.foregroundColor(.white)
.font(.largeTitle)
.fontWeight(.bold)
ScrollView(.horizontal,showsIndicators: false){
HStack{
ForEach(users){ users in
NavigationLink(destination: UserDisplayPage(user: users).navigationTitle("")
.navigationBarHidden(true)
){
VStack(alignment: .center){
Image(users.imageName)
.resizable()
.aspectRatio( contentMode: .fill)
.frame(width: imageSize, height: imageSize
)
.cornerRadius(imageSize/2)
.overlay(
Circle().stroke(Color.white, lineWidth: 5)
)
.padding()
Text(users.name)
.font(.title)
.fontWeight(.bold)
.foregroundColor(.white)
}
}
}
}
}
Spacer()
}.background(
LinearGradient(colors: [.myPurple,.myCyan,.myOrange], startPoint: .topLeading, endPoint: .bottomLeading)
)
.navigationTitle("Good Evening, Nihal")
.foregroundColor(.myOrange)
}
感谢任何帮助。提前致谢。
您应该删除 ContentView 中的 .tabViewStyle
修饰符。
TabView
在 SwiftUI 中有两个截然不同的角色。一种是管理标签栏,它允许您点击标签栏中的图标来选择要显示的视图;另一个是提供可滑动的、分页的视图集合。
鉴于您在子视图中使用了 NavigationView
,我会说第一种样式就是您想要的样式。这是默认设置,所以删除样式修饰符(将选项卡视图切换为第二种形式),一切都应该很好。您还应该能够删除 .ignoresSafeArea
修饰符。