10.6 C
New York
Tuesday, December 17, 2024

ios – Information not displayed correctly on navigation


I’ve a parentview CreateReportView, it include two subviews that are accessed on the premise of navigation. My knowledge is being correctly saved and fetched between youngster view (create report element view) and parentview (create report view) however after I navigate to NewUploadGalleryView my knowledge vanishes, what could possibly be the potential downside? I even modified my states variable to StateObject and ObservedObject respectively to keep up knowledge consistency. My knowledge stays tremendous after I carry out navigation between create report element and create report element view however as quickly as I navigate to NewuploadGallery and return again to createReportView to navigate into createReportDetailView my knowledge resets

Right here is my CreateReportView,

struct CreateReportView: View {
    @Atmosphere(.dismiss) var dismiss
    @State non-public var showingNotifications = false
    @State non-public var isDashboardView = true
    @State non-public var isNotificationView = true
    @State var navigateToSelection:Bool = false
    @State var navigateToSectionDetail: Bool = false
    @State var uploadButton:String?
    var isGallery = false
    var crTitle = ""
    var selectedCat: CatModel? = nil
    var selectedSubCat: CatModel? = nil
    var aiData: JSON? = nil
    @State non-public var loadingVC: LoadingVC?
    @State non-public var ImageGallary = [CRFileModel]()
    @State non-public var totalToUpload: Int?
    @State non-public var isDraft = false
    @State non-public var isEditSaveReport = false
    @State var AILabels: Bool = false
    @StateObject non-public var DashboardviewModel = NewDashBoardViewModel()
    @StateObject non-public var viewModel = ContentViewModel()
    @State non-public var selectedItems: [CRItemModel] = []
    @Binding var parentSection: CRSectionModel?
    @State non-public var toHide: Bool = false
    @State non-public var toRecordwithAI: Bool = false
    @StateObject non-public var createReportData = CreateReportData()

    var physique: some View {
        
        VStack{
            NewCustomNavBar(
                title: "Create Report",
                showBackButton: true,
                onBack: {dismiss()},
                onProfileTap: {},
                showingNotifications: $showingNotifications,
                notificationCount: DashboardviewModel.dashBoardModel?.unreadNotificationCount ?? 0,
                isDashboardView: isDashboardView,
                isNotificationView: isNotificationView
            )
            Listing{
                VStack(spacing: 20) {
                    // Media Gallery Part
                    if isGallery{
                        NewMediaGallerysView(uploadButton: $uploadButton, minGalleryLimit: selectedSubCat?.galleryMin ?? 0, maxGalleryLimit: selectedSubCat?.galleryMax ?? 20, imageGalleryCount: CRModel.shared.imageGallery.depend, selectedSubCat: selectedSubCat)
                            .onChange(of: uploadButton) { newValue in
                                if let new = newValue{
                                    print("Button tapped with motion: (new)")
                                    print("---------------",CRModel.shared.imageGallery.depend)
                                    navigateToSelection = true
                                    uploadButton = nil
                                }
                                
                            }
                            .background(
                                Group{
                                    NavigationLink(
                                        vacation spot: NewUploadGalleryView(imageGallary: viewModel.imageGallary ?? [CRFileModel](), selectedSubCat: selectedSubCat ?? CatModel(knowledge: JSON()), createReportData: createReportData, parentSection: parentSection).environmentObject(createReportData)
                                            .onDisappear {
                                                // Refresh the depend or knowledge within the mum or dad view
                                                viewModel.getData(
                                                    selectedSubCat: selectedSubCat,
                                                    crTitle: crTitle,
                                                    selectedCat: selectedCat,
                                                    imageGallary: CRModel.shared.imageGallery
                                                )
                                                print("ON UPLOAD GALLERY DISMISS PARENT SECTION VALUE :(parentSection?.gadgets.first?.textValue)")
                                                print("paraaaaams: (CRModel.shared.getParams())")
                                            },
                                        isActive: $navigateToSelection,
                                        label: { EmptyViewDesign() }
                                    )
                                    .hidden()
                                    
                                }
                                
                            )
                    }
                    if aiData != nil {
                        if toHide == false {
                            PrimaryButton(title: "I'm pleased with it!")
                                .onTapGesture {
                                    toHide = true
                                }
                            SecondaryButton(title: "Re Document with AI")
                                .onTapGesture {
                                    toRecordwithAI = true
                                }
                        }
                    }
                    ForEach(viewModel.sections, id: .id) { merchandise in
                        
                        CreateReportListingView(sectionModel:merchandise, aiData: AILabels)
                            .onTapGesture {
                                parentSection = merchandise
                                navigateToSectionDetail = true
                                createReportData.gadgets = merchandise.gadgets
                            }
                        
                    }
                    
                    
                    
                    
                    
                } .listRowSeparator(.hidden) //.padding(.horizontal,20)
                //   .padding()
                    .background(Coloration(.systemBackground))
            }.environmentObject(createReportData)
            .listStyle(PlainListStyle())
            .background(
                NavigationLink(vacation spot: CreateReportWithAIView(selectedCat: selectedCat ?? CatModel(knowledge: JSON()), selectedSubCat: selectedSubCat ?? CatModel(knowledge: JSON()), crTitle: crTitle), isActive: $toRecordwithAI){
                    EmptyViewDesign()
                }.hidden()
            )
            .onAppear {
                //                    for i in parentSection?.gadgets ?? [CRItemModel](){
                //                            print("gadgets values onAppear = (i.textValue)")
                //
                //                        }
                //                if viewModel.createRport == nil {
                viewModel.aiData = aiData
                if viewModel.sections.isEmpty{
                    viewModel.getData(selectedSubCat: selectedSubCat, crTitle: crTitle, selectedCat: selectedCat, imageGallary: CRModel.shared.imageGallery) // Fetch knowledge when the view seems
                    if aiData != nil{
                        AILabels = true
                    }
                }
                //                } else {
                //                    viewModel.populateCRModel(crModel: viewModel.createRport)
                //                }
                print("paraaaaams: (CRModel.shared.getParams())")
                print("ON CREATE REPORT APPEAR PARENT SECTION VALUE: (parentSection?.gadgets.first?.textValue)")

            }
            .onDisappear{
                for i in parentSection?.gadgets ?? [CRItemModel]() {
                    print("CR_items values onDisappear = (i.textValue) (i.fieldValue) (i.information)")
                    print("FILESS ARE HERE: (i.information.accommodates(the place: {$0.isLocalURL()}))")
                    print("ON CREATE REPORT DISAPPEAR PARENT SECTION VALUE: (parentSection?.gadgets.first?.textValue)")

                    
                }
                print("ON DISAPPEAR GALLERY COUNT: (CRModel.shared.imageGallery.depend)")
            }
            HStack{
                if viewModel.sections.depend != 0{
                    Button(motion: {
                        saveAsDraftReport()
                    }) {
                        CreateReportDraftButton(title: "Save as Draft")
                    }
                    Button(motion: {
                        //createReport()
                    }){
                        let param = CRModel.shared.getParams()
                        if let params = param.params {
                            CreateReportCreateButton(title: "Create Report")
                                .onTapGesture {
                                    print("Prepared for create report")
                                }
                        }else if let error = param.error {
                            CreateReportCreateButtonGray(title: "Create Report")
                                .onTapGesture {
                                    print("Not Prepared for create report")
                                }
                                .disabled(true)
                        }
                    }
                    
                }
            }.padding(.horizontal, 10)
            
            //        }.navigate(to: CreateReportDetailView(itemModel: selectedItems.first, gadgets: selectedItems), when: $navigateToSectionDetail)
            
        }.navigate(to: CreateReportDetailView(parentSection: $parentSection, createReportData: createReportData)
            .environmentObject(createReportData),
                   when: $navigateToSectionDetail)
            .navigate(to: NotificationsViews(showingNotifications: $showingNotifications), when: $showingNotifications)
            .navigationBarBackButtonHidden()

Right here is my CreateReportDetailView

struct CreateReportDetailView: View {
    @Atmosphere(.dismiss) var dismiss
    @State non-public var showingNotifications = false
    @State non-public var isDashboardView = true
    @State non-public var isNotificationView = true
    @StateObject non-public var DashboardviewModel = NewDashBoardViewModel()
    //@State var gadgets: [CRItemModel]
   @Binding var parentSection: CRSectionModel!
    @StateObject non-public var viewModel = ContentViewModel()
    @State non-public var show360: Bool = false
    @State non-public var selectedItem: CRItemModel? = nil
    @State non-public var updatedText: String = "360 View"
    @ObservedObject var createReportData: CreateReportData
    
    
    var physique: some View {
        VStack {
            NewCustomNavBar(
                title: "Create Report Element",
                showBackButton: true,
                onBack: { CRModel.shared.addModifiedSections()
                    dismiss() },
                onProfileTap: {},
                showingNotifications: $showingNotifications,
                notificationCount: DashboardviewModel.dashBoardModel?.unreadNotificationCount ?? 0,
                isDashboardView: isDashboardView,
                isNotificationView: isNotificationView
            )
            ScrollView {
                ForEach(Array(createReportData.gadgets.enumerated()), id: .component.id) { index, merchandise in
                    change merchandise.getType().rawValue {
                    case "TEXT":
                        let limitString = merchandise.getFieldLimitString()
                        DescriptionInputView(merchandise: $createReportData.gadgets[index],
                            title:"(merchandise.title) (merchandise.matricSymbol != nil ? "((merchandise.matricSymbol!))" : "")",
                            limitString: limitString, characterLimit: merchandise.fieldLimits?.textLimit, necessary: merchandise.necessary,
                            requiredDocument: merchandise.documentRequired, requiredAudio: merchandise.audioRequired,
                                             requiredVideo: merchandise.videoRequired, requiredImage: merchandise.imageRequired, description: merchandise.textValue ?? "", attachment: merchandise.information, parentSection: parentSection
                        ) .....

Right here is my NewUploadGalleryView

struct NewUploadGalleryView: View {
    @FocusState non-public var activeTextField: UUID?
    
    @State var imageGallary: [CRFileModel]
    @State var selectedSubCat: CatModel
    @State non-public var showingNotifications = false
    @State non-public var isDashboardView = true
    @State non-public var isNotificationView = true
    @StateObject non-public var DashboardviewModel = NewDashBoardViewModel()
    @Atmosphere(.dismiss) var dismiss
    @State var uploadButton: Bool = false
    @State non-public var showToast = false
    @State non-public var toastMessage = ""
    @State non-public var uploadState: UploadState = .chooseFiles
    @State var reload: Bool? = false
    @State non-public var showingFullScreenImage: Bool = false
    @State non-public var selectedImageUrl: String? // Retailer the URL of the tapped picture
    @State non-public var isProcessingTap = false
    @State non-public var deletingItemID: UUID?
    @ObservedObject var createReportData: CreateReportData
    @StateObject non-public var viewModel = ContentViewModel()
    let parentSection: CRSectionModel?

    @EnvironmentObject non-public var networkMonitorUpdated: NetworkMonitorUpdated

....

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles