当我在视图中调用 NavigationImageView 时,我想在每次调用中发送不同的视图,这样我就可以导航不同的视图。但问题是如何在 NavigationLink 中发送视图参数。我尝试了 View 和 UIView 但它给了我错误。
struct NavigationImageView: View {
var item : Store
var destinationView: View
var body: some View {
NavigationLink(destination:destinationView ) {
Image(uiImage: (item.banner?.url)!.load())
.resizable()
.aspectRatio(CGFloat((item.banner?.ratio)!), contentMode: .fit)
.cornerRadius(12)
.shadow(radius: 4)
.frame(width: CGFloat(UIScreen.main.bounds.width * 0.9), height: CGFloat((UIScreen.main.bounds.width / CGFloat((item.banner?.ratio) ?? 1))))
}
}
}
Run Code Online (Sandbox Code Playgroud) 我试图在选择菜单项时打上复选标记。我尝试给出 @State var selectedSort : Int = .zero 并给出 id(selectedSort) 但它不起作用。我怎么解决这个问题 ?
这是我的代码;
struct SortMenuPickerView : View {
@Binding var sortClicked : Bool
@ObservedObject var productListViewModel = ProductListViewModel()
@State var sortListArray : [ProductListSortAndFilterList]
var function: () -> Void
@Binding var sortId : String
var body : some View {
HStack(alignment: .center){
Spacer()
Menu {
ForEach(sortListArray,id:\.id){ item in
if item.id == "sort" {
ForEach(item.sortList ?? [],id:\.id) { data in
Button(action: {
sortId = (data.id ?? "")
self.function()
print("selected item is : …Run Code Online (Sandbox Code Playgroud) 我正在尝试更改我的 navigationBarTitle 颜色(不是背景)。我尝试了几个解决方案,但我的标题文本颜色仅在向下滚动时改变。屏幕打开时不改变。
var body: some View {
ZStack{
NavigationView{
ScrollView{
LazyVStack{
ForEach(storeArray,id:\.id) { item in
Image(uiImage: (item.banner?.url)!.load())
.resizable()
.frame(width: CGFloat(UIScreen.main.bounds.width * 0.9), height: CGFloat((UIScreen.main.bounds.width / CGFloat((item.banner?.ratio) ?? 1))))
.cornerRadius(12)
.shadow(radius: 4)
.aspectRatio(CGFloat((item.banner?.ratio)!), contentMode: .fit)
}
}
}
.navigationBarTitle(Text("United App").foregroundColor(.blue))
.background (NavigationConfigurator { nc in
nc.navigationBar.titleTextAttributes = [.foregroundColor : UIColor.blue]
})
}
.onAppear {
if isOpened != true {
getStoreResponse()
}
}
Run Code Online (Sandbox Code Playgroud)