繁体   English   中英

如何将 NavigationView 从具有固定尺寸的 TabView 扩展到全屏?

[英]How to expand a NavigationView to full screen from a TabView with fixed dimensions?

我有一个结合了两个视图的VStack 一个是常规的Rectangle ,另一个是通过其他矩形旋转的TabView 其中一个矩形就像一个NavigationView视图中的按钮,它向用户呈现日历。

在我当前的代码中,日历与TabView保持相同的大小,但我希望日历扩展到全屏(删除绿色矩形并转到完全不同的视图)。 怎么能做到这一点?

当前代码

import SwiftUI

struct ContentView: View {

    var body: some View {
        VStack {
            Rectangle()
                .cornerRadius(15)
                .foregroundColor(Color.green)
                .frame(width: .infinity, height: 250)
            TabView {
                Rectangle()
                    .cornerRadius(15)
                    .foregroundColor(Color.blue)
                    .frame(width: .infinity, height: 300)
                Rectangle()
                    .cornerRadius(15)
                    .foregroundColor(Color.black)
                    .frame(width: .infinity, height: 300)
                NavigationView {
                    NavigationLink(destination: CalendarView()) {
                        Text("Tap for calendar.")
                    }
                }
            }
            .tabViewStyle(PageTabViewStyle(indexDisplayMode: .always))
            .indexViewStyle(.page(backgroundDisplayMode: PageIndexViewStyle.BackgroundDisplayMode.always))
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

它看起来像什么在此处输入图像描述

原来你只需要将整个东西包装在NavigationView中......

mport SwiftUI

struct ContentView: View {

    var body: some View {
        NavigationView {
        VStack {
            Rectangle()
                .cornerRadius(15)
                .foregroundColor(Color.green)
                .frame(width: .infinity, height: 250)
            TabView {
                Rectangle()
                    .cornerRadius(15)
                    .foregroundColor(Color.blue)
                    .frame(width: .infinity, height: 300)
                Rectangle()
                    .cornerRadius(15)
                    .foregroundColor(Color.black)
                    .frame(width: .infinity, height: 300)
                NavigationView {
                    NavigationLink(destination: CalendarView()) {
                        Text("Tap for calendar.")
                    }
                }
            }
            .tabViewStyle(PageTabViewStyle(indexDisplayMode: .always))
            .indexViewStyle(.page(backgroundDisplayMode: PageIndexViewStyle.BackgroundDisplayMode.always))
        }
    }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM