Tenho o seguinte View
no SwiftUI para exibir FamilyActivityPicker
:
import SwiftUI
import FamilyControls
struct FamilyActivityPickerView: View {
@State private var selectionToDiscourage = FamilyActivitySelection()
@Environment(\.dismiss) private var dismiss
var body: some View {
FamilyActivityPicker(headerText: "Select Apps to Restrict", selection: $selectionToDiscourage).navigationBarItems(leading: Button("Cancel") {
print("Cancel!")
dismiss()
}, trailing: Button("Done") {
print("Done!")
dismiss()
}).ignoresSafeArea().onChange(of: selectionToDiscourage) { newSelection in
let applications = selectionToDiscourage.applications
let categories = selectionToDiscourage.categories
let webDomains = selectionToDiscourage.webDomains
print("applications: \(applications), categories: \(categories), webDomains: \(webDomains)")
}
}
}
Entretanto, nenhum dos botões iniciais e finais do navigationBarItems está sendo exibido:
O que estou fazendo errado? Como devemos Cancelar ou Concluído a visualização FamilyActivityPicker?
EDITAR:
Quando uso NavigationStack
o .toolbar
, acabo com 2 barras de navegação, como mostrado na captura de tela abaixo, o que fica muito feio e desperdiça espaço:
import SwiftUI
import FamilyControls
struct FamilyActivityPickerView: View {
@State private var selectionToDiscourage = FamilyActivitySelection()
@Environment(\.dismiss) private var dismiss
var body: some View {
NavigationStack {
FamilyActivityPicker(selection: $selectionToDiscourage).ignoresSafeArea().onChange(of: selectionToDiscourage) { newSelection in
let applications = selectionToDiscourage.applications
let categories = selectionToDiscourage.categories
let webDomains = selectionToDiscourage.webDomains
print("applications: \(applications), categories: \(categories), webDomains: \(webDomains)")
}.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
Button("Cancel") {
print("Cancel!")
dismiss()
}
}
ToolbarItem(placement: .navigationBarTrailing) {
Button("Done") {
print("Done!")
dismiss()
}
}
}
}
}
}
Resultado:
O que você está procurando é `familyActivityPicker` e não `FamilyActivityPicker`
Você não pode modificar os botões de navegação do
FamilyActivityPicker
.Parece que você está apresentando seu
FamilyActivityPickerView
em umsheet
. se for esse o caso, você deve usar o modificador , em vez do view . Substitua o modificador por este modificador..familyActivityPicker
FamilyActivityPicker
.sheet
Mudar
para
O SwiftUI apresentará uma
FamilyActivityPicker
planilha e adicionará automaticamente os botões "Concluído" e "Cancelar".