不希望在点击按钮后弹出NavigationView



我正在创建一个应用程序,给孩子奖励贴纸。当10贴纸收集,我希望所有的贴纸从主视图中删除,图像将显示删除一切之前。这张图片是在点击第11次按钮时显示的,但是选择贴纸的导航视图也显示在这张图片的顶部,我不想让它弹出。

这是我的代码…

NavigationView {
ZStack {
Image("Greenbase")
.resizable()
.frame(width: self.screenWidth, height: self.screenWidth)

ZStack {

ForEach($stickers) { $sticker in
VStack {

Image(sticker.name)
.resizable()
.frame(width: self.screenWidth*0.2, height: self.screenWidth*0.2)
.offset(x: self.selectedSticker == sticker ? sticker.offset.width + self.dragOffset.width : sticker.offset.width,
y: self.selectedSticker == sticker ? sticker.offset.height + self.dragOffset.height : sticker.offset.height)
.gesture(
DragGesture()
.updating(self.$dragOffset, body: { (value, state, transaction) in
if nil == self.selectedSticker {
self.selectedSticker = sticker
}
state = value.translation
})
.onEnded { value in
sticker.offset.height += value.translation.height + dragOffset.height
sticker.offset.width += value.translation.width + dragOffset.width
self.selectedSticker = nil

}
)


}//vstack
.sheet(isPresented: $isAddingSticker, onDismiss: addSticker) {
StampView(sticker: $selectedSticker)

}//foreach

if counter < 11 {
Button {

isAddingSticker = true
print("button pressed: (counter)")
counter += 1


}label: {
RoundedRectangle(cornerRadius: 10)
.foregroundColor(Color(red: 55/255, green: 266/255, blue: 213/255))
.frame(width: 300, height: 40, alignment: .center)

.overlay(
Text(" ステッカーをはろう!")
.foregroundColor(Color(red: 41/255, green: 52/255, blue: 98/255))
.font(.title2))


}//button label

}else {

Button{
isAddingSticker = false
counter = 0
removeSticker(at: 1)

}label: {
Image("WellDone")
.resizable()
.frame(width: self.screenWidth*0.5, height: self.screenWidth*0.5)
.scaleEffect(2.0)
.rotationEffect(Angle(degrees: 360 ))
.animation(.easeInOut(duration: 3.0))


}//button label
} //else
}//Hstack
.disabled(isEditing)
}
}//zstack stamps
}//zstac w bc image
}//body

func removeSticker(at index: Int) {
self.stickers.removeAll()//< -- Here
}

func addSticker() {

guard let name = selectedSticker else { return }
withAnimation {
stickers.insert(name, at: 0)
}

}

}//struct

我对Swift还是个新手…问题应该是非常基本的,但希望你能找到答案。

我想我没有正确理解这个问题,但是您可以在导航视图的末尾使用这个修饰符隐藏导航。

NavigationView {
...
}.navigationBarHidden(true)

相关内容

  • 没有找到相关文章

最新更新