gpt4 book ai didi

ios - NavigationItem 按钮和 Edit mode 按钮分层次显示

转载 作者:行者123 更新时间:2023-12-01 21:58:56 26 4
gpt4 key购买 nike

我在父 View 的 subview 中有一个导航按钮,当我实现编辑按钮时,它显示在不同的位置:

struct DetailsView: View {

@Binding var item: PocketItem
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
@Environment(\.editMode) var editMode


var body: some View {

NavigationView {
Form {

TextField("Placeholder", text: $item.name)
.disabled(.inactive == self.editMode?.wrappedValue)
// .textFieldStyle(RoundedBorderTextFieldStyle())
.foregroundColor((.active == self.editMode?.wrappedValue) ? Color.black : Color.gray)

}
.navigationBarTitle(.inactive == self.editMode?.wrappedValue ? "\(pocketItem.name) Details" : "Edit Pocket", displayMode: .inline)
.navigationBarItems(
trailing: Button(action: {
self.editMode?.wrappedValue = .active == self.editMode?.wrappedValue ? .inactive : .active
})
{
Text(.active == self.editMode?.wrappedValue ? "Done" : "Edit")
}
)

}

}

}

image of my app

最佳答案

由于您的父 View 具有 NavigationView,因此您无需在详细信息中嵌套另一个 NavigationView。从详细信息中删除 NavigationView 以解决问题。

var body: some View {
//NavigationView {
Form {
TextField("Placeholder", text: $item)
.disabled(.inactive == self.editMode?.wrappedValue)
// .textFieldStyle(RoundedBorderTextFieldStyle())
.foregroundColor((.active == self.editMode?.wrappedValue) ? Color.black : Color.gray)
}
.navigationBarTitle(.inactive == self.editMode?.wrappedValue ? "\(item) Details" : "Edit Pocket", displayMode: .inline)
.navigationBarItems(
trailing: Button(action: {
self.editMode?.wrappedValue = .active == self.editMode?.wrappedValue ? .inactive : .active
})
{
Text(.active == self.editMode?.wrappedValue ? "Done" : "Edit")
}
)
//}
}

关于ios - NavigationItem 按钮和 Edit mode 按钮分层次显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60727435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com