需要双击才能从详细信息视图导航到列表视图

时间:2020-02-10 11:21:35

标签: swift swiftui ios13 swiftui-list swiftui-navigationlink

从“列表”视图中,显示消息详细信息视图。

NavigationView() {
        List(msgData) { msg in
            NavigationLink(destination: MessageDetailsView(msgDetails :msg )) {
                        VStack(alignment: .leading, spacing: 5)
                        {
                            Text(msg.name).font(.system(size: 16)).fontWeight(.semibold).foregroundColor(.black)

                        }
            }
        }
        .navigationBarTitle(Text("Messages").font(.headline), displayMode: .inline)
        .navigationBarHidden(false)
    }

以下是邮件详细信息视图

 VStack
    {

        List {

            ForEach(chatMsgArray, id: \.self) { chat in
                ChatRow(chatMessage: chat)
            }

        }
    }
    .navigationBarItems(leading:
    Button(action: {
    print("Back button pressed...")
    }) {
    } , trailing:Button(action: {
    print("Call button pressed...")
    }) {
    }  )

我需要按两次后退按钮才能进入“列表视图”。第一次点击时遇到错误,第二次点击时显示到列表视图。

[TableView]仅警告一次:通知UITableView对其布局进行设置 可见单元格和其他内容,而无需处于视图层次结构 (表视图或其父视图之一尚未添加到 窗口)。通过强制将表视图内的视图强制为 在没有准确信息的情况下加载和执行布局(例如,表格视图 边界,特征收集,布局边距,安全区域插图等),以及 由于额外的布局,还将导致不必要的性能开销 通过。在以下位置建立符号断点 UITableViewAlertForLayoutOutsideViewHierarchy可以在 调试器,看看是什么原因导致这种情况的发生,因此可以避免这种情况 如果可能,请完全采取行动,或将其推迟到表格视图中 已添加到窗口。表格检视: <_TtC7SwiftUIP33_BFB370BA5F1BADDC9D83021565761A4925UpdateCoalescingTableView: 0x107141800; baseClass = UITableView;框架=(0 0; 375667); clipsToBounds = YES; poseRecognizers =; 层=; contentOffset:{0,-64}; contentSize: {375,483}; AdjustedContentInset:{64,0,0,0};数据源: <_TtGC7SwiftUIP10 $ 1c38d1a4819ListCoreCoordinatorGVS_20SystemListDataSourceOs5Never_GOS_19SelectionManagerBoxS2 ___: 0x106486780 >>

1 个答案:

答案 0 :(得分:0)

以下代码可解决此问题

@Environment(.presentationMode)varpresentationMode:绑定

然后,通过按钮动作或类似操作关闭视图: presentationMode.wrappedValue.dismiss()