问题描述
“我的自定义”按钮没有轻击,而是转到下一个称为AddCreditCardView的视图。
我已经用print语句测试了按钮动作,但是它也行不通。
我在下面分别复制了我的代码。
这是我的ContentView
import SwiftUI
struct ContentView: View {
let membershipRows = MembershipData.listData()
let corporateRows = CorporateData.listData()
let otherOperationRows = OtherOperationsData.listData()
@State var selectedCard = CreditCard(id: "",cardOwnerName: "",cardNumber: "",cardExpMonth: "",cardExpYear: "",ccv: "")
@State var shown: Bool = false
var body: some View {
NavigationView {
vstack {
List {
Section(header: Text("Bireysel")) {
ForEach(membershipRows) { row in
NavigationLink(destination: CreditCardView()) {
RowElementView(row: row)
}
}
}
if self.corporateRows.count == 0
{
Rectangle()
.background(Color(.white))
.edgesIgnoringSafeArea(.all)
.foregroundColor(.white)
.padding(.vertical,32)
}
else {
Section(header: Text("Kurumsal")) {
ForEach(corporateRows) { row in
RowElementView(row: row)
}
}
}
Section(header: Text("Diger Islemler")) {
ForEach(otherOperationRows) { row in
RowElementView(row: row)
}
}
Rectangle()
.foregroundColor(.clear)
.frame(width: UIScreen.main.bounds.width,height: UIScreen.main.bounds.height )
}
.navigationBarTitle("Odeme Yontemleri",displayMode: .inline)
.font(Font.custom("SFCompactdisplay",size: 16))
Button(action: {
AddCreditCardView(item: self.selectedCard)
},label: { CustomButton(title: "Odeme Yontemi Ekle",icon: .none,status: .enable)
})
}
}
}
这是我的AddCreditCardView
import SwiftUI
struct AddCreditCardView: View {
var item: CreditCard
var body: some View {
NavigationView {
vstack {
TopBar()
Spacer()
CardInfo()
Spacer()
}
.navigationBarTitle("Odeme Yontemi",displayMode: .inline)
}
}
}
struct TopBar : View {
var body: some View {
vstack {
HStack() {
Image("addcreditcard")
Image("line")
Image("locationBar")
Image("line")
Image("check-circle")
}
.padding(.horizontal,62)
vstack {
Text("Kredi Karti Ekle")
.font(Font.custom("SFCompactdisplay-Bold",size: 14))
Text("1. Adim")
.font(Font.custom("SFCompactdisplay",size: 14))
.fontWeight(.regular)
.foregroundColor(.gray)
}
}
.padding()
}
}
struct CardInfo : View {
var body: some View {
vstack {
CustomTextField(tFtext: "Kartin Uzerindeki Isim",tFImage: "user")
.textContentType(.givenname)
CustomTextField(tFtext: "Kredi Kart Numarasi",tFImage: "credit")
.textContentType(.oneTimeCode)
.keyboardType(.numberPad)
HStack {
CreditCardDateTextField(tFtext: "",tFImage: "date")
.textContentType(.creditCardNumber)
Spacer()
Text("|")
.foregroundColor(.black)
.overlay(
Rectangle()
.frame(width: 60,height: 53))
CustomTextField(tFtext: "CCV",tFImage: "")
.textContentType(.creditCardNumber)
}
.foregroundColor(Color(#colorLiteral(red: 0.9647058824,green: 0.9725490196,blue: 0.9882352941,alpha: 1)))
CustomTextField(tFtext: "Kart Ismi",tFImage: "cardEdit")
Spacer()
}
}
}
最后,这是我的信用卡模型
import SwiftUI
struct CreditCard: Identifiable {
var id: String = UUID().uuidString
var cardOwnerName : String
var cardNumber: String
var cardExpMonth: String
var cardExpYear: String
var ccv: String
解决方法
似乎您正在尝试按按钮导航至AddCreditCardView
。动作关闭不能像那样自动显示视图!您应该将该代码更改为类似 的内容:
@State var navigated = false,NavigationLink("AddCreditCardView",destination: AddCreditCardView(),isActive: $navigated)
Button(action: { self.navigated.toggle() },label: { CustomButton(title: "Odeme Yontemi Ekle",icon: .none,status: .enable) })
更改navigated
状态将显示您希望显示的下一页。