簡體   English   中英

SwiftUI:以編程方式關閉工作表

[英]SwiftUI: dismiss sheet programmatically

我正在使用 SwiftUI 並且正在嘗試為我的應用程序實現身份驗證邏輯。

我有一個帶有注冊按鈕的登錄視圖,如果我單擊它,我會使用一張表來顯示注冊視圖。 用戶注冊后,LoginView(在后台)轉到 HomeView 並且 RegisterView 應該消失。 問題是 RegisterView 沒有消失。

@ObservedObject var viewModel = RegisterViewModel()
@EnvironmentObject var authenticatedUser : AuthenticatedUser
@Environment(\.presentationMode) var presentationMode
ButtonWithLoadStateView(title: K.REGISTER, isLoading: self.$vm.isLoading) {
    self.viewModel.isLoading = true
    self.viewModel.register() { user in
        self.authenticatedUser.setLogged(user) // without this IT WORKS!
        self.presentationMode.wrappedValue.dismiss()
   }
}

如果我刪除 authenticatedUser.setLogged 行然后它工作但它只是封裝用戶並存儲令牌..

提供的代碼不可測試,所以只是想法 - 嘗試以下

ButtonWithLoadStateView(title: K.REGISTER, isLoading: self.$vm.isLoading) {
    self.viewModel.isLoading = true
    self.viewModel.register() { user in
        DispatchQueue.main.async {
           self.authenticatedUser.setLogged(user)
        }
        self.presentationMode.wrappedValue.dismiss()
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM