【发布时间】:2020-10-29 17:12:35
【问题描述】:
我想制定这样的协议:
protocol SubscriptionManagerView: View {
var subscriptionManager: EnvironmentObject<SubscriptionManager> { get set }
}
以在这样的视图中使用为例:
struct Shop: View, SubscriptionManager {
@EnvironmentObject var subscriptionManager: SubscriptionManager
第一个问题是属性包装器@EnvironmentObject 不能让我响应协议 SubscriptionManagerView。
最后我想使用这样的自定义修饰符:
extension View where Self : SubscriptionManagerView {
func subscriptionManagerAlert() -> some View {
self.alert(isPresented: self.$subscriptionManager.stateShowAlert) {
Alert(title: Text(self.subscriptionManager.transactionStateTitle)
...
}))
}
}
}
有没有办法以这种方式工作?
【问题讨论】:
-
@EnvironmentObject var subscriptionManager: SubscriptionManager不等于var subscriptionManager: EnvironmentObject<SubscriptionManager>
标签: swift view swiftui protocols