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按钮,您需要在登录或隐藏按钮后为根级别管理它。这里已经有很多关于更改登录到主视图的问题。