【问题标题】:EXC_BAD_ACCESS with navigation bar title in SwiftUISwiftUI 中带有导航栏标题的 EXC_BAD_ACCESS
【发布时间】:2019-11-11 13:33:11
【问题描述】:

每当我在我的 SwiftUI 视图中包含导航栏标题时,我的 iPhone(但不是在模拟器中)就会崩溃。如果我取出导航栏标题一切正常,但我需要那里的标题。这是我的代码:

NavigationView {
    List {
        ForEach(self.viewModel.tasks) { task in
            TaskRow(task: task)
        }
            .onDelete(perform: self.viewModel.delete(indexSet:))
    }
        .listStyle(.grouped)
        .edgesIgnoringSafeArea(.bottom)
        .navigationBarTitle(Text("mainTitle")) //EXC_BAD_ACCESS crash here
}

更新

我剥离了上面的代码并开始了一个新项目,以确保不是我的自定义 UI 或我的业务逻辑在做一些奇怪的事情。下面的代码在我的 iPhone 上产生了同样的崩溃。

struct ContentView : View {
    var body: some View {
        NavigationView {
            List {
                ForEach((0...10).identified(by: \.self)) { val in
                    Text("test")
                    }
                }
                .listStyle(.grouped)
                .edgesIgnoringSafeArea(.bottom)
                .navigationBarTitle(Text("Hey"))
        }
    }
}

知道为什么会发生这种情况或如何解决吗?

【问题讨论】:

  • 您是否尝试过将 navigationBarTitle 放在 List 块之外?
  • 是的。我尝试在NavigationView 上使用它并遇到了同样的崩溃。

标签: ios swift navigationbar swiftui


【解决方案1】:

我发现了问题所在。我正在使用 Xcode 11 beta 1 构建,但我的 iPhone 运行的是 iOS 13 beta 2。由于 Swift 框架现在已内置到 iOS 中,因此我手机上的 Swift 框架(使用 beta 2 sdk)正在执行我的 iOS 应用程序(使用编译beta 1 sdk) 没有预料到。升级到 Xcode 11 beta 2 后,一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多