【发布时间】:2019-11-23 05:49:09
【问题描述】:
学习 SwiftUI。尝试从单击的导航栏按钮导航到新视图。
示例代码如下:
var body: some View {
NavigationView {
List(0...< 5) { item in
NavigationLink(destination: EventDetails()){
EventView()
}
}
.navigationBarTitle("Events")
.navigationBarItems(trailing:
NavigationLink(destination: CreateEvent()){
Text("Create Event")
}
)
}
}
【问题讨论】:
-
您是想将
CreateEvent推送到导航堆栈上还是想以模态方式呈现它? -
是的,推送到导航堆栈。
-
根据您提供的代码,我确实有一个建议。可能这只是示例代码,但在这种情况下,
CreateEvent应该真正以模态方式呈现,而不是推送到导航堆栈上。原因是,如果您有一个事件列表,每个事件在按下时都会将详细视图推送到堆栈上,那么创建新事件实际上是与导航堆栈无关的次要操作,应该真正作为临时视图处理 - 就像创建一个联系人应用中的新联系人或日历应用中的新日历事件。 -
DynamicNavigationDestinationLink 似乎可以解决问题。当我以模态方式呈现视图时,它仅在我第一次单击按钮时才起作用。后续点击什么也不做。
-
这是当前模态演示的一个问题,似乎只是一个错误。我假设它会在完全发布之前修复,但是是的,目前这是以模态方式呈现视图的问题。如果您设法解决了您的问题,我建议您回答您自己的问题,然后接受它,以便有类似问题的人可以从您为解决问题所做的工作中学习。
标签: swift swiftui navigationview