在 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&lt;Content: View&gt;: View 使用 compositionaggregation 概念而不是 inheritance 【参考方案1】:

协议和协议扩展是继承的替代方案。

https://www.hackingwithswift.com/sixty/9/4/protocol-extensions

我猜在您的情况下,您尝试处理不同的身份验证视图考虑使用视图组合。

https://www.hackingwithswift.com/books/ios-swiftui/view-composition

【讨论】:

以上是关于在 swiftUI 中集成重复代码,比如继承之类的的主要内容,如果未能解决你的问题,请参考以下文章

我们如何在 iphone 应用程序中集成支付网关? [关闭]

SwiftUI 中的 FSCalendar 集成

iOS SwiftUI 在与代码交互时如何调出“嵌入 VStack”之类的额外操作?

是否可以在 iphone 中集成 Authorize.net 支付网关? [复制]

我们可以在 IOS 5.0 中集成 Facebook SDK 3.1 吗? [复制]

如何在 SwiftUI 中使用 UIViewController 和 UIView?