相关疑难解决方法(0)

如何在 SwiftUI 中分配可选的 Binding 参数?

我正在尝试NavBar使用一些可选的构建自定义Views,例如搜索栏(但仅当视图需要显示它时)。

基本上,我需要在视图中传递一些@State属性@Binding。但我也需要它们作为Optional参数。

下面是一个例子:

struct NavBar: View {
    
    var isSearchable: Bool?
    
    @Binding var searchTxt: String
    @Binding var searchIsOn: Bool
    
    var navBarTitle: String
    var navBarAction: (() -> Void)?
    var navBarImage: String?
    
    init(navBarTitle: String, navBarAction: (() -> Void)? = nil, navBarImage: String? = nil, isSearchable: Bool? = false, searchTxt: (Binding<String>)?, searchIsOn : (Binding<Bool>)?) {
        self.navBarTitle = navBarTitle
        if(navBarAction != nil) {
            self.navBarAction = navBarAction!
        }
        if(navBarImage != nil) {
            self.navBarImage = navBarImage!
        } …
Run Code Online (Sandbox Code Playgroud)

binding swift swiftui

29
推荐指数
3
解决办法
2万
查看次数

SwiftUI DatePicker 绑定可选日期,有效 nil

我正在试验来自https://alanquatermain.me/programming/swiftui/2019-11-15-CoreData-and-bindings/ 的代码

我的目标是让 DatePicker 绑定到 Binding< Date? > 允许 nil 值而不是初始化 Date(); 这很有用,如果您的核心数据模型实体中有 Date 属性接受 nil 作为有效值。

这是我的快速游乐场代码:

extension Binding {
    init<T>(isNotNil source: Binding<T?>, defaultValue: T) where Value == Bool {
        self.init(get: { source.wrappedValue != nil },
                  set: { source.wrappedValue = $0 ? defaultValue : nil})
    }
}

struct LiveView: View {
    @State private var testDate: Date? = nil
    var body: some View {
        VStack {
            Text("abc")

            Toggle("Has Due Date",
                   isOn: Binding(isNotNil: $testDate, defaultValue: Date()))

            if testDate != …
Run Code Online (Sandbox Code Playgroud)

core-data ios swift swift-playground swiftui

10
推荐指数
1
解决办法
2713
查看次数

标签 统计

swift ×2

swiftui ×2

binding ×1

core-data ×1

ios ×1

swift-playground ×1