Ios 单击按钮未打开视图
我正在开发一个应用程序,在来宾屏幕中,我创建了两个按钮,分别用于Ios 单击按钮未打开视图,ios,swift,iphone,swiftui,Ios,Swift,Iphone,Swiftui,我正在开发一个应用程序,在来宾屏幕中,我创建了两个按钮,分别用于注册和登录 该按钮定义为: Button( action: { RegisterLoginView(isLoginScreen: false) }){ MyButtonView(stringOfButton: register, isDarkButton: true) .padding(.leading,
注册
和登录
该按钮定义为:
Button( action: {
RegisterLoginView(isLoginScreen: false)
}){
MyButtonView(stringOfButton: register, isDarkButton: true)
.padding(.leading, 10)
}
首先,Xcode抱怨“RegisterLoginView”初始值设定项的结果未使用
,但我最担心的是,当我按下按钮时,我以为会打开RegisterLoginView
,但什么也没发生。有什么想法吗
客人意见:
var body: some View {
VStack {
TabView {
GuestFlowImageTab(title: title1,
desc: desc1,
image: "houseprice")
GuestFlowImageTab(title: title2,
desc: desc2,
image: "invest")
GuestFlowFormTab()
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
HStack {
Button( action: {
RegisterLoginView(isLoginScreen: false)
}){
MyButtonView(stringOfButton: register, isDarkButton: true)
.padding(.leading, 10)
}
Button( action: {
RegisterLoginView(isLoginScreen: true)
}){
MyButtonView(stringOfButton: login, isDarkButton: false)
.padding(.trailing, 10)
}
}
}
而注册表登录视图
的定义如下:
struct RegisterLoginView: View {
let titleTxt = "My Realtor"
let emailTxt = "Email"
let passwordTxt = "Password"
let nameTxt = "Name"
let loginBtn = "Sign In"
let registerBtn = "Sign Up"
@State var isLoginScreen: Bool
@State private var name = ""
@State private var email = ""
@State private var password = ""
var body: some View {
VStack() {
Text(titleTxt)
Image("iconhouseorange")
if(isLoginScreen) { TextField(nameTxt, text: self.$name) }
TextField(emailTxt, text: self.$email)
TextField(passwordTxt, text: self.$password)
Button(isLoginScreen ? loginBtn : registerBtn) {}
}
}
}
struct RegisterLoginView_Previews: PreviewProvider {
static var previews: some View {
RegisterLoginView(isLoginScreen: true)
}
}
感谢您的帮助您应该使用
导航链接
而不是按钮进行重定向
NavigationLink(destination: RegisterLoginView(isLoginScreen: false)) {
MyButtonView(stringOfButton: register, isDarkButton: true)
.padding(.leading, 10)
}
此外,如果父视图(来宾视图)不在导航视图下,则使用导航视图包装视图
客人视图
var body: some View {
NavigationView {
VStack {
// --- Other code ----
}
}
}
谢谢它可以工作,但现在一切都由导航视图处理。按钮打开一个登录,当登录成功时,我打开一个仪表板视图。当它发生时,我仍然有Back按钮,您需要在登录或隐藏按钮后为根级别管理它。这里已经有很多关于更改登录到主视图的问题。