PresentationButton 没有触发两次动作
Posted
技术标签:
【中文标题】PresentationButton 没有触发两次动作【英文标题】:PresentationButton didn't trigger action twice 【发布时间】:2019-06-05 12:55:11 【问题描述】:我想呈现模态视图并在关闭后再次呈现它。
struct ContentView : View
var body: some View
NavigationView
Group
Text("hi")
Text("hello")
.navigationBarItem(title: Text("Demo"))
.navigationBarItems(trailing:
PresentationButton(
Image(systemName: "person.crop.circle")
.imageScale(.large)
.accessibility(label: Text("User Profile"))
.padding(),
destination: Text("User Profile")
)
)
它仅在第一次点击时触发。关闭目标视图后,点击PresentationButton
什么也不做。有人对此有解决方案吗?
【问题讨论】:
这对我来说似乎是一个错误。它也对我不起作用。希望有人(WWDC 参加者)在 SwiftUI 实验室期间与 Apple 人员进行检查。 @SMP 你知道我们应该在某个地方填写问题吗? 也有这个问题。更奇怪的是,我的演示按钮上方还有另一个按钮,在第一次单击演示按钮后,上面的按钮接管了演示按钮的操作。 @apocolipse 我在两个平台(catalina 和 mojave)上都有问题 我有同样的问题,即使是从苹果开发者网站下载的教程项目。绝对是一个错误 【参考方案1】:它看起来像一个错误,这里有一个解决方法:
struct ContentView : View
@State var showModal: Bool = false
var body: some View
NavigationView
Group
Text("hi")
Text("hello")
.navigationBarItem(title: Text("Demo"))
.navigationBarItems(trailing:
Button(action:
self.showModal = true
)
Image(systemName: "person.crop.circle")
)
.presentation(showModal ? Modal(Text("Hey"),
onDismiss: self.showModal = false ) : nil)
【讨论】:
以上是关于PresentationButton 没有触发两次动作的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI PresentationButton 在 watchOS 上单次使用后停止运行