SwiftUI中的UIButton导航按钮等效于什么

SwiftUI中的UIButton导航按钮等效于什么,swiftui,Swiftui,我有一个工作区,我需要一个主视图,它使用按钮推送到包含各自视图的其他项目。这在UI故事板中很容易实现,但是如果没有实现navigationView,这里似乎就没有 Button(action: { print("Button action") }) { Image("LIVEMENU") } .padding(.vertical, 2.5) .padding(.horizontal, 2.5) 是当前实现,直到现在它还是占位符 这是我过去

我有一个工作区,我需要一个主视图,它使用按钮推送到包含各自视图的其他项目。这在UI故事板中很容易实现,但是如果没有实现navigationView,这里似乎就没有

Button(action: {
    print("Button action")
}) {
    Image("LIVEMENU")
}
.padding(.vertical, 2.5)
.padding(.horizontal, 2.5)
是当前实现,直到现在它还是占位符

这是我过去习惯的

- (IBAction)GoToNext:(id)sender 
{
ViewController2 *vc2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil];

[[self navigationController] pushViewController:vc2 animated:YES];
}

您需要使用
导航视图
,但可以将其隐藏

请尝试以下操作:

struct ContentView: View {
    @State private var isLinkActive = false

    var body: some View {
        NavigationView {
            VStack {
                Button("Go to...") {
                    // activate link programmatically
                    self.isLinkActive = true
                }
            }
            // hide navigation bar
            .navigationBarTitle("", displayMode: .inline)
            .navigationBarHidden(true)
            .background(
                NavigationLink(destination: SecondView(), isActive: $isLinkActive) {
                    EmptyView()
                }
                .hidden()
            )
        }
    }
}

struct SecondView: View {
    @Environment(\.presentationMode) private var presentationMode

    var body: some View {
        Button("Go back") {
            self.presentationMode.wrappedValue.dismiss()
        }
        .navigationBarTitle("", displayMode: .inline)
        .navigationBarHidden(true)
    }
}


您需要使用
导航视图
,但可以将其隐藏

请尝试以下操作:

struct ContentView: View {
    @State private var isLinkActive = false

    var body: some View {
        NavigationView {
            VStack {
                Button("Go to...") {
                    // activate link programmatically
                    self.isLinkActive = true
                }
            }
            // hide navigation bar
            .navigationBarTitle("", displayMode: .inline)
            .navigationBarHidden(true)
            .background(
                NavigationLink(destination: SecondView(), isActive: $isLinkActive) {
                    EmptyView()
                }
                .hidden()
            )
        }
    }
}

struct SecondView: View {
    @Environment(\.presentationMode) private var presentationMode

    var body: some View {
        Button("Go back") {
            self.presentationMode.wrappedValue.dismiss()
        }
        .navigationBarTitle("", displayMode: .inline)
        .navigationBarHidden(true)
    }
}


你说没有导航控制器是什么意思?NavigationView@pawello2222(经过编辑以反映这一点),但你将不会有导航栏返回箭头、标题等。这是你想要的吗?是的,我理解这一点,这就是为什么我希望以这种方式处理导航。(自定义导航)以清除将链接的视图,从而在其中包含导航视图。我计划在这些视图的顶部嵌入一个home按钮,以返回主视图@pawello2222没有导航控制器是什么意思?NavigationView@pawello2222(经过编辑以反映这一点),但您将不会有导航栏返回箭头、标题等。这是您想要的吗?是的,我明白这就是为什么我希望以这种方式处理导航。(自定义导航)以清除将链接的视图,从而在其中包含导航视图。我计划在这些视图的顶部嵌入一个home按钮,以返回主视图@pawello2222第二个视图在工作区中,不是同一个swift文件@pawello2222或者我理解这里的代码有误吗?@RealTechyGod它不必在同一个文件中。@RealTechyGod这可能会帮助你:@RealTechyGod顺便说一句,你最近对我的一些问题进行了投票吗?@RealTechyGod我注意到了你的投票:)但事实上不会有太大帮助-请参阅。第二个视图位于工作区中,而不是同一个swift文件@pawello2222,或者我理解这里的代码有误吗?@RealTechyGod它不必位于同一个文件中。@RealTechyGod这可能会帮到你:@RealTechyGod顺便说一句,你最近对我的一些问题投了赞成票吗?@RealTechyGod我注意到你的反对票:)但是在事实上,这不会有多大帮助——看吧。