- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用我的 @EnvironmentObject
让我的 TeamData 可以被不同的人使用,但效果不佳。当我通过列表中的导航链接转到另一个 View 时,这很好。当我点击同一 View 的按钮时,它崩溃了..
我想我说错了什么。有人可以帮助解决这个问题吗?这是否意味着我需要添加 @EnvironmentObject
首先在 NavigationView 以便我可以使用它?谢谢
演示:https://youtu.be/-iRadrHd94c
import SwiftUI
struct GameRecordListView: View {
@EnvironmentObject var teamResult : TeamResult
@State var hint : String = ""
@State var successRegistration : Bool = false
@State var sheetPresented: Bool = false
var body: some View {
VStack{
List(0 ..< 12){ item in
NavigationLink(destination: GameDetailRecordView()){ <-this works well
Text("444")
}
}
VStack{
Spacer()
HStack{
Spacer()
NavigationLink(destination: GameDetailRecordView()) <-this doesn't works well and crashed
{
Image(systemName: "pencil.circle")
.resizable()
.frame(width: 35, height: 35)
.padding(12)
.background(Color.blue)
.foregroundColor(Color.white)
.clipShape(Circle())
}
}.padding(15)
}
}.onAppear(perform: {
print("teamResult:\(self.teamResult.groupID):\(self.teamResult.groupName)")
})
}
}
import SwiftUI
import SwiftyJSON
struct TeamDetail: View {
@EnvironmentObject var teamResult : TeamResult
// @ObservedObject var teamResult: TeamResult
var roles = ["GameRecord", "Schedule", "Money", "Member"]
@State var show = false
@State private var selectedIndex = 0
var body: some View {
ZStack{
VStack {
Picker(selection: $selectedIndex, label: Text("")) {
ForEach(0..<roles.count) { (index) in
Text(self.roles[index])
}
}
.pickerStyle(SegmentedPickerStyle())
HStack{
containedView()
}
Spacer()
}
}.navigationBarTitle(teamResult.groupName)
.onAppear(perform:{
})
}
//select different view by selectedIndex
func containedView() -> AnyView {
switch selectedIndex {
case 0:
return AnyView(
GameRecordListView().environmentObject(teamResult) <-create environmentObject here
)
case 1:
return AnyView(Text("")
.padding(30))
case 2:
return AnyView(
BookkeepingView().environmentObject(teamResult)
)
default:
return AnyView(
TeamMemberListView().environmentObject(teamResult))
}
}
}
import SwiftUI
struct GameDetailRecordView: View {
@EnvironmentObject var teamResult : TeamResult
var body: some View {
Text("ID:\(teamResult.groupID)Name:\(teamResult.groupName)")
}
}
Fatal error: No ObservableObject of type TeamResult found.
A View.environmentObject(_:) for TeamResult may be missing as an ancestor of this view.: file /BuildRoot/Library/Caches/com.apple.xbs/Sources/Monoceros_Sim/Monoceros-39.4.3/Core/EnvironmentObject.swift, line 55
2020-01-20 01:14:58.466655+0800 Fitness(SwiftUI)[49035:4851345] Fatal error: No ObservableObject of type TeamResult found.
A View.environmentObject(_:) for TeamResult may be missing as an ancestor of this view.: file /BuildRoot/Library/Caches/com.apple.xbs/Sources/Monoceros_Sim/Monoceros-39.4.3/Core/EnvironmentObject.swift, line 55
最佳答案
尝试在 NavigationLink 的 View 上添加 environmentObject
NavigationLink(destination: GameDetailRecordView().environmentObject(teamResult))
关于swiftui - @EnvironmentObject 通过 navigationLink 不能很好地工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59812640/
我和我的团队目前正在 SwiftUI 中开发 Mastodon 客户端,我有一个简单的 StatusView,用于显示所有帖子数据,目前看起来像这样: 这个 View ,在我的项目中被称为 Statu
我正在设计一个应用程序,其中包含检索 JSON 数据并在 FileBrowser 类型 View 中显示检索到的项目列表的功能。在此 View 中,用户应该能够单击文件夹以深入了解文件树,或单击文件以
我有一个 Form 中的项目列表在 NavigationView , 每个都有一个可以通过 NavigationLink 访问的详细 View . 当我向列表中添加一个新元素时,我想显示它的详细 Vi
我无法阻止 SwiftUI 的 NavigationLink 在 List 中被激活,我有这段简单的代码,其中在决定是否显示详细信息页面之前,我需要进行某种业务检查(在真实世界的应用程序中,按钮操作中
我正在制作一个应用程序,我在其中输入两个数字,并希望在单击按钮时在第二个屏幕中显示数字的相加结果。我可以在控制台中打印结果,但不幸的是,按钮周围的导航链接似乎不起作用。如果我将 NavigationL
我可能遗漏了一些东西,但我无法让 NavigationLink 在列表中工作。 我正在使用 NavigationLink(destination, tag, selection) 并且我想通过点击按钮
我的 iPad 应用有以下代码: struct ContentView: View { @State var selectionIndex: Int? = nil var body:
我有一个简单的用例,其中一个屏幕使用 NavigationLink 推送另一个屏幕。 iOS 14.5 beta (1, 2, 3) 有一个奇怪的行为,推送的屏幕在被推送后就弹出。 我设法创建了一个示
这个问题在这里已经有了答案: SwiftUI NavigationLink Button is gray and untouchable (2 个回答) 2年前关闭。 import SwiftUI s
有没有办法隐藏自动添加的导航链接 View 右侧的箭头? 我想使用 NavigationView -> List -> HStack -> NavigationLink_1 - NavigationL
我有一个带有一堆 NavigationLink 的 NavigationView。当用户点击“添加”按钮时,我想在 View 中创建一个新项目并自动将它们发送给它。我可以这样做吗? 最佳答案 Swif
我试图在出现时以编程方式触发 NavigationLink,但在所有情况下,目标 View 都会在出现后立即弹出 (iOS 13.3.1, Xcode 11.3.1) . 设置如下:ContentVi
我正在开发一个登录应用程序,登录后列出了类别。在每个类别下,都有一些横向列出的项目。事情是登录后,出现主页,一切都很好。当您单击某个项目时,它会进入详细屏幕,但是当您尝试返回时,它就会崩溃。我找到了这
我想显示一些数据的类别和子类别。我有从 json 获得的数据,当一个类别没有子类别时,它们有 parent = 0 并且如果它不同于零,则可以理解该类别有子类别。 然后,我希望从护理人员列表中根据 p
我正在开发一个需要登录的应用程序,登录后会列出类别。每个类别下都有一些水平列出的项目。问题是登录后,出现主页,所有内容都列出来了。当您单击某个项目时,它会进入详细屏幕,但当您尝试返回时,它就会崩溃。我
我正在使用 NavigatonView 和 NavigationLink,我的 View 是这样的: ScrollView{ VStack{ // MARK: - Survey
导航链接内的图像只显示为蓝色。点按图像确实可以将我们正确导航到目的地。 代码: public var body: some View { NavigationView { Im
在新版本的iOS和Xcode中 NavigationLink(isActive: , destination: , label: ) 已弃用。 那我们如何控制NavigationLink的状态呢? 最
如何更改警报中按钮的颜色和 NavigationLink 中的后退按钮?在警报按钮的文本不起作用后设置 .accentColor(.init("someColor")) 。在 navigationLi
现在我有一个导航链接 NavigationView { NavigationLink(destination: AnotherView())) { Text("Click
我是一名优秀的程序员,十分优秀!