【问题标题】:I need a function that returns only the titles of my structures in SwiftUI我需要一个在 SwiftUI 中只返回我的结构标题的函数
【发布时间】:2020-06-01 01:50:49
【问题描述】:

所以这可能是一个简单的修复,但我对 Xcode 和 SwiftUI 还是很陌生。我有一个包含标题作为属性的结构,我试图仅在选项卡视图内的搜索栏中列出标题,这是我到目前为止得到的,唯一对我有用的函数是 randomElement() !,显然在我的列表中只显示一个随机标题

这里是我要放置函数的地方

TabView {
        Searchbar(duaa: .constant(Duaa.demoDuaa.randomElement()!))
        .tabItem {
        VStack {
               Image(systemName: "book.circle")
                 .renderingMode(.original)
                 Text(verbatim: "PRAYERS")
                }
           }.tag(2)
}

这是我的结构代码

import SwiftUI

struct Duaa: Identifiable {
  var id = UUID()
  var title: String
  var imageName: String
  var duaaContext: String
  var duaabenefit: String
  var isLiked = false
}

extension Duaa: Equatable {
  static func == (lhs: Duaa, rhs: Duaa) -> Bool {
    return lhs.id == rhs.id
  }

    }
extension Duaa {
  static let demoDuaa = [
    Duaa(title: "blue", imageName: "blueimage"),
    Duaa(title: "yellow", imageName: "yellowimage"),
    Duaa(title: "Orange", imageName: "orangeimage"),
    Duaa(title: "Green", imageName: "greenimage"),
    Duaa(title: "Purple", imageName: "purpleimage")
]
}

【问题讨论】:

    标签: swift function struct swiftui


    【解决方案1】:

    如果您有一个 Duaa 对象数组,您可以映射它并轻松提取标题。

    var duaaTitles = arrayOfDuaas.map{ $0.title }

    这将创建一个标题数组。

    .compactMap{} 更好,因为这将消除任何可能的 nil。

    如果您需要具体帮助,您需要展示更多代码(例如您的 Searchbar 实现)。

    此外,您正在使用静态结构定义 Duaa(就像 Duaa 的蓝图而不是实际的 Duaa)而不是它的实例做很多工作。是故意的吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 1970-01-01
      相关资源
      最近更新 更多