工具栏导航链接



有了iOS 16的新导航逻辑,你应该如何将navigationBarItems升级为工具栏?我的应用程序有许多视图与一个加号按钮在右上角的视图链接到新视图。下面是带有navigationBarItems的旧样式和新的样式工具栏. 在下面的例子中MyNewView我不确定如何处理导航链接。它给出一个警告,提示导航链接初始化器未使用。

struct MyOldView: View {
var body: some View {
VStack {
Text("The Old View")
}
.navigationTitle("Our Old View")
.navigationBarItems(trailing: NavigationLink (destination: GoToNewView()) {
Image(systemName: "plus")
.resizable()
.frame(width: 18, height: 18)
})
}
}
struct MyNewView: View {
var body: some View {
VStack {
Text("The New View")
}
.navigationTitle("Our New View")
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Button( action: {
NavigationLink("", destination: GoToNewView())
}){
Image(systemName: "plus")
.resizable()
.frame(width: 18, height: 18)
}
}
}
}
}
struct GoToNewView: View {
var body: some View {
VStack {
Text("Here is our new view")
}
}
}

NavigationLinkView,不能作为Button初始化器的action闭包传递。由于NavigationLink作为按钮,您可以添加NavigationLink而不添加Button:


ToolbarItem(placement: .navigationBarTrailing) {
NavigationLink(destination: GoToNewView()) {
Image(systemName: "plus")
.resizable()
.frame(width: 18, height: 18)
}
}

最新更新