即使在第一视图Swiftui中设置了值,ObservedObject也返回nil

即使在第一视图Swiftui中设置了值,ObservedObject也返回nil,swiftui,optional,observedobject,Swiftui,Optional,Observedobject,我有一门课“实际课程” 和两个结构“设置”和“课程” 我做错了什么?我必须在开始时给出一个随机UUID,因为我找不到另一种方法……您在第二个视图中创建的CourseActuelle独立于您在第一个视图中创建的、您正在初始化id值的UUID。如果希望它们相同,您可以在第二个视图中使用@EnvironmentObject,然后在第一个视图中注入它,或者以其他方式传递它。谢谢,我不清楚environmentToObject和observeObject。。。我会了解更多的! class ActualCo

我有一门课“实际课程”

和两个结构“设置”和“课程”


我做错了什么?我必须在开始时给出一个随机UUID,因为我找不到另一种方法……

您在第二个视图中创建的
CourseActuelle
独立于您在第一个视图中创建的、您正在初始化id值的UUID。如果希望它们相同,您可以在第二个视图中使用
@EnvironmentObject
,然后在第一个视图中注入它,或者以其他方式传递它。

谢谢,我不清楚environmentToObject和observeObject。。。我会了解更多的!
class ActualCourse : ObservableObject {
    @Published var id : UUID?
    @Published var CourseName : String = ""
    
}
struct Settings: View {
    @State private var action : Int? = 0
    @ObservedObject var objCourse = ActualCourse()
    @State var courseId : UUID = UUID()
    @State var list : [Course] = [] // list is not empty, I didn't show it to you to make the code lighter
    
    init() {
        objCourse.id = UUID()
    }
    var body: some View {
        NavigationView{
            VStack{
    NavigationLink(destination: Course(), tag: 1, selection: $action){}
         List {
 let count = list.count
 ForEach(0 ..< count, id: \.self){ index in
           HStack {
Image(systemName: "chevron.right.circle.fill")
                                        .font(.title)
                                        .onTapGesture {
                                        objCourse.id = list[index].id
                                        objCourse.nomCourse = list[index].nomCourse
                                        print(objCourse.id!) // Id Appear when I click !
                                        self.action = 1
                                        }
struct Settings: View {
@ObservedObject var objCourse = CourseActuelle()

....

.onAppear(){
            print(self.objCourse.id!) // RETURN nil
            
        }