我在项目中需要通过NavigationLink来进行页面跳转,NavigationLink目前存在一个问题,后面会有一个小箭头。我通过overlay一个EmptyView()来去除箭头,代码如下:
HStack{
Spacer()
Button(action: {
action.DownLoadViewIsShow = true
print("do some thing")
}, label: {
Text("点击下载").foregroundColor(.black)
})
.overlay(
NavigationLink(
destination: DownLoadView(),
isActive: $action.DownLoadViewIsShow,
label: {EmptyView()})
)
Spacer()
}
现在需要用到多个NavigationLink,就需要对上面的代码实现复用,但在封装时我遇到一个问题,那就是destination,这个即将要跳转的页面DownLoadView()如何作为参数接收,用什么类型来接收。
struct NavigationLinkCell: View {
var viewIsShow:Binding<Bool>
let title: String
let method: ()->Void?
let ToView: AnyView //问题所在
var body: some View {
HStack{
Spacer()
Button(action: {method()}, label: {
Text(title).foregroundColor(.black)
})
.overlay(
NavigationLink(
destination: ToView, //问题所在
isActive: viewIsShow,
label: {
EmptyView()
})
)
Spacer()
}
}
}