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

Posted

技术标签:

【中文标题】如何导航到 SwiftUI 设置的新视图【英文标题】:How to navigate to new View for Settings for SwiftUI 【发布时间】:2019-07-27 13:29:57 【问题描述】:

在应用程序上工作以显示设备的状态,使用 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】:

你需要把你的 if 语句放在一个容器中,例如:Group

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

【讨论】:

谢谢!这确实解决了函数声明不透明返回类型的错误问题。但整体功能还不是我需要在视图之间移动的。是时候做一些家务了,然后回到这个问题。再次感谢您! 不客气。如果您继续尝试问题,请发布包含更多详细信息的问题,我们会尽力提供帮助。干杯;-)

以上是关于如何导航到 SwiftUI 设置的新视图的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击按钮在 Swift UI 中从一个视图导航到另一个视图

SWIFTUI:在视图中导航并返回

如何在 onReceive 计时器关闭 SwiftUI iOS 中导航另一个视图

更新 SwiftUI 导航栏标题

Swift UI笔记

如何在 swift UI 中单击按钮时从 swift UI 导航到情节提要?