12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import Foundation
- import SwiftUI
- protocol ViewOnAppearHandling: ObservableObject {
-
- func onViewAppear()
- }
- extension View {
- @discardableResult func defaultViewModifier(_ model: some ViewOnAppearHandling) -> some View {
- return modifier(DefaultViewModifier(viewModel: model))
- }
- }
- struct DefaultViewModifier<ViewModel: ViewOnAppearHandling>: ViewModifier {
- @ObservedObject var viewModel: ViewModel
- func body(content: Content) -> some View {
- content
- .onAppear {
- viewModel.onViewAppear()
- }
- }
- }
|