如何导航到SwiftUI设置的新视图

时间:2019-07-27 13:29:57

标签: swiftui

在应用程序上工作以显示设备状态,并使用SwiftUI按标签分组。我的主视图运行良好,显示了标签列表和相关设备的状态。我可以单击标签并打开一个新视图,以显示有关标签的信息和有关设备的一些信息。

我看过Programatically navigate to new view in SwiftUI  并收到错误消息“函数声明了不透明的返回类型,但是主体中没有可从中推断出基础类型的返回语句”

class MenuChoice: BindableObject {
  let didChange = PassthroughSubject<MenuChoice, Never>()
  let willChange = PassthroughSubject<MenuChoice, Never>()
  func login() {
    self.isSettingsViewActive = true
  }
  var isSettingsViewActive = false {
    didSet {
      didChange.send(self)
    }
  }
}

struct ViewMain: View {
  @EnvironmentObject var menuChoice: MenuChoice
  var body: some View  {
    if !menuChoice.isSettingsViewActive {
      ViewSettings()
    } else {
      ViewMain2()
    }
  }
}

我希望选项(按钮)导航到: **高级设置视图,可以在其中配置总体设置 **仅针对设备信息的视图 **仅针对标签信息的视图

视图起作用,但是我找不到导航到视图然后从视图返回的方法。

SwiftUI可能还没有准备好?

1 个答案:

答案 0 :(得分:0)

您需要将if语句放入容器中,例如:Group

struct ViewMain: View {
  @EnvironmentObject var menuChoice: MenuChoice
  var body: some View  {
      Group {
         if !menuChoice.isSettingsViewActive {
           ViewSettings()
         } else {
           ViewMain2()
         }
      }
   }
}