我将如何使文本表示另一个视图(swiftUI)中的变量



抱歉,如果这是一个菜鸟问题,但我最近开始进入Xcode开发,我似乎无法弄清楚这个问题。

因此,基本上当用户单击歌曲时,应用程序会拉出一张纸,其中包含专辑封面,歌曲标题和艺术家。除了歌曲标题、专辑封面和艺术家之外,所有这些都在起作用。我认为使用环境对象将是要走的路。所以我把:

import Foundation
import Combine
class NowPlayingData: ObservableObject {
@Published var songName:String = "Not Playing"
}

在 NowPlay 页面上,将显示信息,我有这个:

import SwiftUI
struct NowPlaying: View {
@EnvironmentObject var songName: NowPlayingData
@State private var volume = 0.1
var body: some View {
VStack {
VStack(alignment: .leading) {
Image("NA")
.resizable()
.frame(width: 300.0, height: 300.0)
.cornerRadius(15)
.shadow(radius: 50)
Text("(songName)")
.font(.title)
.fontWeight(.semibold)
Text("")
.font(.headline)
.foregroundColor(Color.blue)
}
Slider(value: $volume)
.padding(.horizontal, 5.0)
mediaControls()
}
}
}
struct NowPlaying_Previews: PreviewProvider {
static var previews: some View {
NowPlaying()
}
}

但是,在构建它时,我收到此错误:无法将类型"NowPlayingData"的值转换为预期的参数类型"字符串">

我还有一个按钮,就像self.songName = "Bud Like You

谢谢,如果格式不正确或难以理解,很抱歉:)

我怀疑错误来自使用"songName",这是一个NowPlayingData,而不是字符串:

Text("(songName)")

你想要的是 NowPlayingData 的字符串,即:

Text("(self.songName.songName)")

我建议你重命名你的var更有意义,例如:

@EnvironmentObject var playingData: NowPlayingData

最新更新