在 swiftUI 中集成重复代码,比如继承之类的
Posted
技术标签:
【中文标题】在 swiftUI 中集成重复代码,比如继承之类的【英文标题】:Integrate repeating code in swiftUI, like inherit or something 【发布时间】:2021-06-08 07:41:43 【问题描述】:我有一些 SwiftUI 视图,其中有很多重复部分,如下所示:
import SwiftUI
struct SomeView: View
// start of the repeating part
@EnvironmentObject var mainViewModel: MainViewModel
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
@ObservedObject var viewModel: AuthViewModel
init(viewModel:AuthViewModel)
self.viewModel = viewModel
// end of the repeating part
var body: some View
// some view
在 java 或 Kotlin 中,我可以简单地继承其类型的类, 但我注意到 struct 不能被继承。 那么实现这一目标的替代方法是什么?
【问题讨论】:
泛型是一种解决方案,struct SomeView<Content: View>: View
使用 composition 和 aggregation 概念而不是 inheritance。
【参考方案1】:
协议和协议扩展是继承的替代方案。
https://www.hackingwithswift.com/sixty/9/4/protocol-extensions
我猜在您的情况下,您尝试处理不同的身份验证视图考虑使用视图组合。
https://www.hackingwithswift.com/books/ios-swiftui/view-composition
【讨论】:
以上是关于在 swiftUI 中集成重复代码,比如继承之类的的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 iphone 应用程序中集成支付网关? [关闭]
iOS SwiftUI 在与代码交互时如何调出“嵌入 VStack”之类的额外操作?
是否可以在 iphone 中集成 Authorize.net 支付网关? [复制]