SwiftUI:使用带有NavigationLink的NavigationBarItems和NavigationLink的TabbedView

时间:2019-07-31 16:49:02

标签: ios swift xcode swiftui

Xcode 11 beta 4

我在TabbedView的子视图中使用SwiftUI,在tabItems的子视图中,我使用NavigationView作为.navigationBarItems的按钮来创建NavigationLink 1}},我的TabbedView正常运行,但是当按下.navigationBarItems按钮时,我无法导航到目的地。

我尝试使用每个NavigationView的{​​{1}}中的MainView.swift,但这在每个View中都无法正确呈现。

-不起作用- MainView.swift

TabItem

MainView.swift-当前视图 -TabbedView运行正常

import SwiftUI

struct MainView: View {
  @State private var selection = 1

  var body: some View {
    TabbedView {
      NavigationView {
        HomeView()
          .navigationBarTitle("Home")
          .navigationBarItems(trailing: SettingsButton())
      }.tabItem { 
        Text("Home")
      }.tag(1)

      NavigationView {
        SecondView()
          .navigationBarTitle("Second")
      }.tabItem { 
        Text("Second")
      }.tag(2)
    }
  }
}

HomeView.swift -这是使用import SwiftUI struct MainView: View { @State private var selection = 1 var body: some View { TabbedView { HomeView().tabItem { Text("Home") }.tag(1) SecondView().tabItem { Text("Second") }.tag(2) } } } .navigationBarItems的视图,不能正常工作!

NavigationLink

SettingsView.swift

import SwiftUI

struct HomeView: View {
    var body: some View {
        NavigationView {
            HStack {
                Text("A")
                Text("B")
            }
            .navigationBarTitle(Text("Home"))
            .navigationBarItems(trailing: SettingsButton())
        }
    }
}

// THIS is **NOT** working correctly !!!
struct SettingsButton: View {
    var body: some View {
        NavigationLink(destination: SettingsView()) {
            Image(systemName: "slider.horizontal.3")
        }
    }
}

如何将import SwiftUI struct SettingsView: View { var body: some View { NavigationView { HStack { Text("Settings") Text("View") } .navigationBarTitle(Text("Settings")) } } 中的.navigationBarItems与先前的NavigationLink中的TabbedView一起使用?

0 个答案:

没有答案