Приложение, которое я создаю, аварийно завершает работу, когда нажимается кнопка, расположенная за клавиатурой.
У меня следующий вид:
struct LoginSheetView: View {
// Variables Here
var body: some View {
SwiftyHUDView(isShowing: self.$isLoading) {
VStack{
Text("Login")
.font(.largeTitle)
.fontWeight(.semibold)
.padding(.bottom, 20)
TextField("Username", text: self.$username)
.padding(.bottom, 20)
.autocapitalization(.none)
.textContentType(UITextContentType.username)
SecureField("Password", text: self.$password)
.padding(.bottom, 20)
.textContentType(UITextContentType.password)
Button(action: {
self.isLoading = true
if(!self.username.isEmpty && !self.password.isEmpty){
self.databaseCalls.login(username: self.username, password: self.password){ b in
self.isLoading = false
print("is loading: \(self.isLoading)")
if(b){
self.loginStatus = true
self.presentationMode.wrappedValue.dismiss()
}else{
self.showingAlert = true
}
}
}
}){
Text("Login")
.frame(width: 220, height: 60)
.cornerRadius(15.0)
}
}
.alert(isPresented: self.$showingAlert) {
Alert(title: Text("Loging failed"), message: Text("Wrong username or password"), dismissButton: .default(Text("Got it!")))
}
.padding()
}
}
}
, который выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/xxdby.png)
Всякий раз, когда я нажимаю кнопку Логин , когда клавиатура поднята, я получаю следующую ошибку в файле AppDelegate
:
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
Эта ошибка не возникает, если я нажимаю return
на клавиатуре, а затем нажимаю кнопку Login
.
Есть идеи, что является причиной ошибки?
ПРИМЕЧАНИЕ: Я удалил некоторый код (объявления переменных, отступы, цвета и т. Д. c), чтобы было легче переваривать