当您从导航栏
项目中的按钮显示模式时,这是SwiftUI中的错误。在下面的代码中,按钮1可以正常工作,但是按钮2只能工作一次:
struct DetailView: View {
@Binding var isPresented: Bool
@Environment (\.presentationMode) var presentationMode
var body: some View {
NavigationView {
Text("OK")
.navigationBarTitle("Details")
.navigationBarItems(trailing: Button(action: {
self.isPresented = false
// or:
// self.presentationMode.wrappedValue.dismiss()
}) {
Text("Done").bold()
})
}
}
}
struct ContentView: View {
@State var showSheetView = false
var body: some View {
NavigationView {
Group {
Text("Master")
Button(action: { self.showSheetView.toggle() }) {
Text("Button 1")
}
}
.navigationBarTitle("Main")
.navigationBarItems(trailing: Button(action: {
self.showSheetView.toggle()
}) {
Text("Button 2").bold()
})
}.sheet(isPresented: $showSheetView) {
DetailView(isPresented: self.$showSheetView)
}
}
}
该错误来自去年年中,至今仍存在于Xcode 11.3.1 +
iOS 13.3 Simulator和iOS 13.3.1 iPhone XS中。
这里有任何解决方法可以使按钮起作用?
编辑:
似乎要点击的区域下降到某个地方,可以点击下面的按钮以显示模式。
临时解决方案是使用嵌入式导航栏模式:
.navigationBarTitle("Main", displayMode: .inline)
好吧,问题出
在工作表关闭后导航栏按钮的布局不正确(似乎打破了约束)
在视图层次结构调试中清晰可见:
这是一个修复程序(当然,解决方法是安全的,因为即使在解决问题后,它仍可以继续工作)。这个想法不是与残缺的布局作斗争,而只是创建另一个按钮,因此布局引擎本身会删除旧的不良按钮
并html" target="_blank">添加新的刷新布局。众所周知的仪器-使用.id()
演示2
修改后的代码:
struct ContentView: View {
@State var showSheetView = false
@State private var navigationButtonID = UUID()
var body: some View {
NavigationView {
Group {
Text("Master")
Button(action: { self.showSheetView.toggle() }) {
Text("Button 1")
}
}
.navigationBarTitle("Main")
.navigationBarItems(trailing: Button(action: {
self.showSheetView.toggle()
}) {
Text("Button 2").bold() // recommend .padding(.vertical) here
}
.id(self.navigationButtonID)) // force new instance creation
}
.sheet(isPresented: $showSheetView) {
DetailView(isPresented: self.$showSheetView)
.onDisappear {
// update button id after sheet got closed
self.navigationButtonID = UUID()
}
}
}
}
问题内容: 我的ContentView具有两个不同的模式视图,因此我都使用了它们,但似乎只显示了最后一个。我该如何解决这个问题?还是无法在SwiftUI的视图上使用多个图纸? 上面的代码编译时没有警告(Xcode 11.2.1)。 问题答案: 请尝试以下代码
所以,我有一个按钮,功能是更新我的文本视图。每次有人点击到当前日期的按钮。但是,由于某种原因,它只起作用一次。我试过XML onClick方法和Java的setOnClickListener,没有一个管用。有人能帮我解决这个问题吗?
这个小部件在模拟器4.1.2上工作得很好,当安装在真正的设备上时,它甚至不会显示在小部件列表上,就像安装了一样,但我不能让它正常工作。 下面是manifest.xml 和小部件提供程序
我是一个很新的编程人员,我正在尝试使用Javascript制作岩石剪刀,我遇到了这个问题。每当我点击岩石图像,它会产生一个0和2之间的随机数,如果这个数字是0,那就是平局,如果是1,那玩家输了,如果是2,那玩家赢了。但当我运行这段代码时,它只在数字为0时才起作用。所以当我点击按钮时,如果数字是0,它会显示“它是一个领带”,但如果不是0,它不会显示任何东西。但当我再次尝试单击时,它不起作用。我必须刷
我希望表2(标题为“托管交易”)按日期自动排序,表1(标题为“贷款查询”)按姓氏自动排序。两张表都在一张谷歌表中。我已经找到了下面的脚本,我对它进行了轻微的修改,它在第2页上的效果非常好,可以按日期自动排序; 但是,我希望第一张工作表按照第2列中的姓氏自动排序,而不是脚本所指的第7列 值得一提的是,我对脚本做了以下更改,并在下面的脚本中添加了按姓氏排序的脚本,该脚本在第1页的第2列中运行良好; 但
我试图详细学习JavaEE7,但我在从数据库中获取记录并在JSF页面上显示它们方面遇到了问题。 我使用Wildfly10.1.0和Oracle XE11。我创建了以下数据源: 在JBoss的管理接口中的连接测试是成功的。 这是我的: 当我通过运行WildFly,并通过部署我的应用程序时,它可以工作。 当我在Eclipse中启动服务器并尝试使用相同的命令部署应用程序时,它失败了--因为我添加了JPA