1.1 C
New York
Sunday, March 9, 2025

ios – SwiftUI’s navigationBarItems main and trailing buttons not exhibiting in FamilyActivityPicker


I’ve the next View in SwiftUI to show FamilyActivityPicker:

import SwiftUI
import FamilyControls

struct FamilyActivityPickerView: View {
    @State non-public var selectionToDiscourage = FamilyActivitySelection()
    @Surroundings(.dismiss) non-public var dismiss
    
    var physique: some View {
        FamilyActivityPicker(headerText: "Choose Apps to Limit", choice: $selectionToDiscourage).navigationBarItems(main: Button("Cancel") {
            print("Cancel!")
            dismiss()
        }, trailing: Button("Achieved") {
            print("Achieved!")
            dismiss()
        }).ignoresSafeArea().onChange(of: selectionToDiscourage) { newSelection in
            let purposes = selectionToDiscourage.purposes
            let classes = selectionToDiscourage.classes
            let webDomains = selectionToDiscourage.webDomains
            print("purposes: (purposes), classes: (classes), webDomains: (webDomains)")
        }
    }
}

Nevertheless, neither of the navigationBarItems main and trailing buttons are exhibiting:

enter image description here

What am I doing incorrect? How are we speculated to Cancel or Achieved the FamilyActivityPicker view?

EDIT:

Once I use NavigationStack with .toolbar, I find yourself with 2 navigation bars as proven beneath screenshot which seems to be very ugly and wastes house:

import SwiftUI
import FamilyControls

struct FamilyActivityPickerView: View {
    @State non-public var selectionToDiscourage = FamilyActivitySelection()
    @Surroundings(.dismiss) non-public var dismiss
    
    var physique: some View {
        NavigationStack {
            FamilyActivityPicker(choice: $selectionToDiscourage).ignoresSafeArea().onChange(of: selectionToDiscourage) { newSelection in
                let purposes = selectionToDiscourage.purposes
                let classes = selectionToDiscourage.classes
                let webDomains = selectionToDiscourage.webDomains
                print("purposes: (purposes), classes: (classes), webDomains: (webDomains)")
            }.toolbar {
                ToolbarItem(placement: .navigationBarLeading) {
                    Button("Cancel") {
                        print("Cancel!")
                        dismiss()
                    }
                }
                ToolbarItem(placement: .navigationBarTrailing) {
                    Button("Achieved") {
                        print("Achieved!")
                        dismiss()
                    }
                }
            }
        }
    }
}

End result:

enter image description here

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles