SwiftUI导航栏标题-displayMode:.inline-崩溃

8

我在使用SwiftUI时遇到了问题。我正在创建一个带有导航栏的列表,并且想要将导航栏模式设置为inline,而不是默认情况下的大型模式。但是当我将导航栏标题模式设置为inline时,应用程序会崩溃。

struct User {
    var index: Int
    var name: String
}

struct ContentView : View {
    var users: [User] = [
        User(index: 0, name: "Peter"),
        User(index: 1, name: "Marko"),
        User(index: 2, name: "John")]

    var body: some View {
        NavigationView {
            List(users.identified(by: \.index)) {
                UserRow(user: $0)
            }
            .navigationBarTitle(Text("Users"), displayMode: .inline)
        }
    }
}

struct UserRow: View {
    var user: User
    var body: some View {
        Text(user.name)
    }
}

我认为这是一个SwiftUI的错误。

有人知道可能是什么问题吗?提前感谢。


以上代码运行良好。也许其他问题可能会导致崩溃。 您使用的是哪个XCode Beta版本? - Ketan Odedra
1
我已经尝试过beta 1和最新的beta 4版本,但它总是崩溃。也许问题是因为我在模拟器上测试。应用程序在以下行中崩溃:window.makeKeyAndVisible()我收到了错误信息: “nw_endpoint_get_type called with null endpoint ... __nwlog_err_simulate_crash simulate crash already simulated nw_endpoint_get_type called with null endpoint ...”其他一些人也报告了类似的问题: https://forums.developer.apple.com/thread/120104 - Vladimir88dev
2
即使XCode 11已正式发布,这种情况仍然会发生。不确定它是否适用于裸体的SwiftUI应用程序,但我们的情况不是这样的,我们有UIHostingController包装SwiftUI视图。 - Simon
1
自从我添加了UINavigationBar.appearance().isTranslucent = false,我也遇到了同样的问题。 - user12504463
2
似乎是Swift UI的一个bug,UINavigationBar.appearance().isTranslucent = falsenavigationBarTitle - displayMode: .inline.navigationViewStyle(StackNavigationViewStyle())的组合导致了崩溃。我现在要暂时移除UINavigationBar.appearance().isTranslucent = false来解决问题。 - Thein
显示剩余3条评论
1个回答

0

看起来在Xcode 11.4 beta 2中已经修复了


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接