尝试在SwiftUI中添加全屏活动指示器。
我可以.overlay(overlay: )在View协议中使用功能。
这样,我可以进行任何视图叠加,但是找不到的UIActivityIndicatorView等效于iOS默认样式SwiftUI。
如何使用制作默认样式微调框SwiftUI?
注意:这与在UIKit框架中添加活动指示器无关。
在我看来,Apple鼓励我们放弃UIViewController在SwiftUI中使用,但如果不使用视图控件,我会觉得有些无能为力。我想要的是能够实现某种ViewModel将事件发送给的功能View。
ViewModel:
public protocol LoginViewModel: ViewModel {
var onError: PassthroughSubject<Error, Never> { get }
var onSuccessLogin: PassthroughSubject<Void, Never> { get }
}
Run Code Online (Sandbox Code Playgroud)
查看:
public struct LoginView: View {
fileprivate let viewModel: LoginViewModel
public init(viewModel: LoginViewModel) {
self.viewModel = viewModel
}
public var body: some View {
NavigationView {
MasterView()
.onReceive(self.viewModel.onError, perform: self.handleError(_:))
.onReceive(self.viewModel.onSuccessLogin, perform: self.handleSuccessfullLogin)
}
}
func handleSuccessfullLogin() {
//push next screen
}
func handleError(_ error: Error) {
//show alert
} …Run Code Online (Sandbox Code Playgroud)