ipad - NavigationLink 在紧凑型 iPad 模式下的问题。(SwiftUI)
问题描述
我正在创建一个非常简单的应用程序,在适用于 iPad 的 iOS 14 中,我有一个包含两个视图的 NavigationView:
var body: some View {
NavigationView {
// shows sidebar in iPad
SidebarIpad()
// shows the first view
InitialView()
}
}
初始视图假设它是屏幕 1,它只有一个进入屏幕 2 的 NavigationLink,屏幕 2 只有一个到屏幕 3 的 NavigationLink,屏幕 3 显示文本“Hello world”。
当 iPad 处于全屏状态时,一切正常,当我打开应用程序时,我会看到侧边栏,屏幕 1 进入视图 2,屏幕 2 进入视图 3。在视图 3 中
如果我在视图 3 中并且我使用 SplitView 从全屏切换到 2/3 或 1/3 视图 3 仍然在屏幕上。我遇到的问题是,如果我以紧凑 1/3 模式打开应用程序并在我将屏幕扩展到纵向(2/3)时从视图 2 转到视图 3,则视图 3 消失,我返回视图 2。
控制台中显示以下内容:
[SwiftUI] 在视图更新期间修改状态,这将导致未定义的行为。
[Assert] displayModeButtonItem 是内部管理的,不会针对 DoubleColumn 样式公开。返回一个空的、断开连接的 UIBarButtonItem 以履行非空合同。
我究竟做错了什么?我已经检查过了,.navigationViewStyle(StackNavigationViewStyle())
因为它是一个 iPad 应用程序,所以它不起作用,这样我只会在所有视图中显示固定的侧边栏
解决方案
推荐阅读
- transition - __layout 中的苗条过渡
- android-layout - android studio中的仪表板控制台布局
- firebase - 编写 Firebase Firestore 规则时出现问题
- sql - HANA:如何在已编入索引的列上添加唯一约束?
- c - C API 使用 tz 数据库获取 DST 的开始和结束日期
- kirby - Kirby CMS:如何将块返回为 HTML?
- python-3.x - 正则表达式提取 Excel 单元格引用
- reactjs - 在 useEffect 中,如何在运行后续逻辑之前先正确更新状态?
- angular - Angular 材质 CdkDragPreview 输入
- python - 如何在 MultiHeadAttention 中为 TpyTorch 的 3d attn_mask 参数准备数据